From 976bf9b6a360a9705c8261bb34bbec3a2c965edb Mon Sep 17 00:00:00 2001 From: Mark McCaskey Date: Wed, 1 Apr 2020 17:09:51 -0700 Subject: [PATCH 01/12] Move integration tests to `tests` dir in workspace root --- Cargo.lock | 68 +++--------------- Cargo.toml | 18 ++--- .../benches => benches}/metering_benchmark.rs | 12 ++-- build.rs | 9 +++ lib/api-tests/Cargo.toml | 15 ---- lib/api-tests/src/lib.rs | 1 - lib/llvm-backend-tests/Cargo.toml | 16 ----- lib/llvm-backend-tests/src/lib.rs | 17 ----- lib/middleware-common-tests/Cargo.toml | 28 -------- lib/runtime-core-tests/Cargo.toml | 21 ------ lib/wasi-tests/Cargo.toml | 30 -------- .../wasitests/snapshot1_close_preopen_fd.rs | 19 ----- .../tests/wasitests/snapshot1_fd_allocate.rs | 19 ----- .../tests/wasitests/snapshot1_fd_append.rs | 18 ----- .../tests/wasitests/snapshot1_fd_close.rs | 19 ----- .../tests/wasitests/snapshot1_fd_pread.rs | 19 ----- .../tests/wasitests/snapshot1_fd_read.rs | 19 ----- .../tests/wasitests/snapshot1_fd_sync.rs | 18 ----- .../tests/wasitests/snapshot1_fseek.rs | 18 ----- .../tests/wasitests/snapshot1_mapdir.rs | 18 ----- .../tests/wasitests/snapshot1_path_link.rs | 24 ------- .../tests/wasitests/snapshot1_path_rename.rs | 18 ----- .../tests/wasitests/snapshot1_path_symlink.rs | 24 ------- .../tests/wasitests/snapshot1_poll_oneoff.rs | 25 ------- .../tests/wasitests/snapshot1_readlink.rs | 18 ----- .../snapshot1_wasi_sees_virtual_root.rs | 28 -------- .../tests/wasitests/snapshot1_writing.rs | 28 -------- .../wasitests/unstable_close_preopen_fd.rs | 18 ----- .../tests/wasitests/unstable_fd_allocate.rs | 18 ----- .../tests/wasitests/unstable_fd_append.rs | 18 ----- .../tests/wasitests/unstable_fd_close.rs | 18 ----- .../tests/wasitests/unstable_fd_pread.rs | 18 ----- .../tests/wasitests/unstable_fd_read.rs | 18 ----- .../tests/wasitests/unstable_fd_sync.rs | 18 ----- .../tests/wasitests/unstable_fseek.rs | 18 ----- .../tests/wasitests/unstable_mapdir.rs | 18 ----- .../tests/wasitests/unstable_path_link.rs | 24 ------- .../tests/wasitests/unstable_path_rename.rs | 18 ----- .../tests/wasitests/unstable_path_symlink.rs | 24 ------- .../tests/wasitests/unstable_poll_oneoff.rs | 24 ------- .../tests/wasitests/unstable_readlink.rs | 18 ----- .../unstable_wasi_sees_virtual_root.rs | 28 -------- .../tests/wasitests/unstable_writing.rs | 28 -------- .../tests => tests}/exception_handling.rs | 4 +- tests/generate-wasi-tests/Cargo.toml | 21 ++++++ .../generate-wasi-tests/src/lib.rs | 15 ++-- .../src}/set_up_toolchain.rs | 4 +- .../generate-wasi-tests/src}/util.rs | 0 .../generate-wasi-tests/src}/wasi_version.rs | 0 .../generate-wasi-tests/src}/wasitests.rs | 61 ++++++++++------ .../tests => tests}/high_level_api.rs | 0 .../tests => tests}/imports.rs | 4 +- .../tests/compile.rs => tests/llvm_compile.rs | 20 +++++- .../src/lib.rs => tests/middleware_common.rs | 14 ++-- .../lib.rs => tests/runtime_core_tests/mod.rs | 0 .../src/lib.rs => tests/wasi_serialization.rs | 6 +- .../wasi_test_resources}/close_preopen_fd.out | 0 .../wasi_test_resources}/close_preopen_fd.rs | 2 +- .../wasi_test_resources}/create_dir.out | 0 .../wasi_test_resources}/create_dir.rs | 0 .../wasi_test_resources}/envvar.out | 0 .../wasi_test_resources}/envvar.rs | 0 .../wasi_test_resources}/fd_allocate.out | 0 .../wasi_test_resources}/fd_allocate.rs | 2 +- .../wasi_test_resources}/fd_append.out | 0 .../wasi_test_resources}/fd_append.rs | 4 +- .../wasi_test_resources}/fd_close.out | 0 .../wasi_test_resources}/fd_close.rs | 4 +- .../wasi_test_resources}/fd_pread.out | 0 .../wasi_test_resources}/fd_pread.rs | 4 +- .../wasi_test_resources}/fd_read.out | 0 .../wasi_test_resources}/fd_read.rs | 4 +- .../wasi_test_resources}/fd_sync.out | 0 .../wasi_test_resources}/fd_sync.rs | 2 +- .../wasi_test_resources}/file_metadata.out | 2 +- .../wasi_test_resources}/file_metadata.rs | 4 +- .../wasi_test_resources}/fs_sandbox_test.out | 0 .../wasi_test_resources}/fs_sandbox_test.rs | 0 .../wasi_test_resources}/fseek.out | 0 .../wasi_test_resources}/fseek.rs | 4 +- .../wasi_test_resources}/hello.out | 0 .../wasi_test_resources}/hello.rs | 0 .../wasi_test_resources}/ignores.txt | 0 .../wasi_test_resources}/isatty.out | 0 .../wasi_test_resources}/isatty.rs | 0 .../wasi_test_resources}/mapdir.out | 0 .../wasi_test_resources}/mapdir.rs | 4 +- .../wasi_test_resources}/path_link.out | 0 .../wasi_test_resources}/path_link.rs | 4 +- .../wasi_test_resources}/path_rename.out | 0 .../wasi_test_resources}/path_rename.rs | 4 +- .../wasi_test_resources}/path_symlink.out | 0 .../wasi_test_resources}/path_symlink.rs | 6 +- .../wasi_test_resources}/poll_oneoff.out | 0 .../wasi_test_resources}/poll_oneoff.rs | 6 +- .../wasi_test_resources}/quine.out | 3 +- .../wasi_test_resources}/quine.rs | 3 +- .../wasi_test_resources}/readlink.out | 0 .../wasi_test_resources}/readlink.rs | 4 +- .../snapshot1/close_preopen_fd.wasm | Bin .../snapshot1/create_dir.wasm | Bin 85641 -> 85641 bytes .../snapshot1/envvar.wasm | Bin .../snapshot1/fd_allocate.wasm | Bin 71482 -> 71482 bytes .../snapshot1/fd_append.wasm | Bin 71341 -> 71341 bytes .../snapshot1/fd_close.wasm | Bin .../snapshot1/fd_pread.wasm | Bin 70581 -> 70581 bytes .../snapshot1/fd_read.wasm | Bin 69992 -> 69992 bytes .../snapshot1/fd_sync.wasm | Bin 71718 -> 71718 bytes .../snapshot1/file_metadata.wasm | Bin 69036 -> 69052 bytes .../snapshot1/fs_sandbox_test.wasm | Bin .../wasi_test_resources}/snapshot1/fseek.wasm | Bin 72098 -> 72098 bytes .../wasi_test_resources}/snapshot1/hello.wasm | Bin .../snapshot1/isatty.wasm | Bin .../snapshot1/mapdir.wasm | Bin .../snapshot1/path_link.wasm | Bin .../snapshot1/path_rename.wasm | Bin .../snapshot1/path_symlink.wasm | Bin 70632 -> 70632 bytes .../snapshot1/poll_oneoff.wasm | Bin 77974 -> 77974 bytes .../wasi_test_resources}/snapshot1/quine.wasm | Bin 70081 -> 70097 bytes .../snapshot1/readlink.wasm | Bin 72086 -> 72086 bytes .../snapshot1/wasi_sees_virtual_root.wasm | Bin .../snapshot1/writing.wasm | Bin .../wasi_test_resources}/test_fs/README.md | 0 .../test_fs/hamlet/README.md | 0 .../test_fs/hamlet/act1/scene1.txt | 0 .../test_fs/hamlet/act1/scene2.txt | 0 .../test_fs/hamlet/act1/scene3.txt | 0 .../test_fs/hamlet/act1/scene4.txt | 0 .../test_fs/hamlet/act1/scene5.txt | 0 .../test_fs/hamlet/act2/scene1.txt | 0 .../test_fs/hamlet/act2/scene2.txt | 0 .../test_fs/hamlet/act3/scene1.txt | 0 .../test_fs/hamlet/act3/scene2.txt | 0 .../test_fs/hamlet/act3/scene3.txt | 0 .../test_fs/hamlet/act3/scene4.txt | 0 .../test_fs/hamlet/act4/scene1.txt | 0 .../test_fs/hamlet/act4/scene2.txt | 0 .../test_fs/hamlet/act4/scene3.txt | 0 .../test_fs/hamlet/act4/scene4.txt | 0 .../test_fs/hamlet/act4/scene5.txt | 0 .../test_fs/hamlet/act4/scene6.txt | 0 .../test_fs/hamlet/act4/scene7.txt | 0 .../test_fs/hamlet/act5/scene1.txt | 0 .../test_fs/hamlet/act5/scene2.txt | 0 .../test_fs/hamlet/bookmarks/2019-07-16 | 0 .../unstable/close_preopen_fd.wasm | Bin .../unstable/create_dir.wasm | Bin 84883 -> 84883 bytes .../wasi_test_resources}/unstable/envvar.wasm | Bin .../unstable/fd_allocate.wasm | Bin 71389 -> 71389 bytes .../unstable/fd_append.wasm | Bin 71422 -> 71422 bytes .../unstable/fd_close.wasm | Bin .../unstable/fd_pread.wasm | Bin 71109 -> 71109 bytes .../unstable/fd_read.wasm | Bin 70527 -> 70527 bytes .../unstable/fd_sync.wasm | Bin 71515 -> 71515 bytes .../unstable/file_metadata.wasm | Bin 69039 -> 69055 bytes .../unstable/fs_sandbox_test.wasm | Bin .../wasi_test_resources}/unstable/fseek.wasm | Bin 72203 -> 72203 bytes .../wasi_test_resources}/unstable/hello.wasm | Bin .../wasi_test_resources}/unstable/isatty.wasm | Bin .../wasi_test_resources}/unstable/mapdir.wasm | Bin .../unstable/path_link.wasm | Bin .../unstable/path_rename.wasm | Bin .../unstable/path_symlink.wasm | Bin 70381 -> 70381 bytes .../unstable/poll_oneoff.wasm | Bin 78310 -> 78310 bytes .../wasi_test_resources}/unstable/quine.wasm | Bin 69976 -> 69992 bytes .../unstable/readlink.wasm | Bin 70835 -> 70835 bytes .../unstable/wasi_sees_virtual_root.wasm | Bin .../unstable/writing.wasm | Bin .../wasi_sees_virtual_root.out | 0 .../wasi_sees_virtual_root.rs | 6 +- .../wasi_test_resources}/writing.out | 0 .../wasi_test_resources}/writing.rs | 10 +-- {lib/wasi-tests/tests => tests}/wasitest.rs | 0 .../tests => tests/wasitests}/README.md | 0 .../tests => tests}/wasitests/_common.rs | 5 +- .../tests => tests}/wasitests/mod.rs | 2 +- tests/wasitests/snapshot1_close_preopen_fd.rs | 17 +++++ .../wasitests/snapshot1_create_dir.rs | 7 +- .../wasitests/snapshot1_envvar.rs | 9 +-- tests/wasitests/snapshot1_fd_allocate.rs | 17 +++++ tests/wasitests/snapshot1_fd_append.rs | 16 +++++ tests/wasitests/snapshot1_fd_close.rs | 17 +++++ tests/wasitests/snapshot1_fd_pread.rs | 17 +++++ tests/wasitests/snapshot1_fd_read.rs | 17 +++++ tests/wasitests/snapshot1_fd_sync.rs | 16 +++++ .../wasitests/snapshot1_file_metadata.rs | 7 +- .../wasitests/snapshot1_fs_sandbox_test.rs | 7 +- tests/wasitests/snapshot1_fseek.rs | 16 +++++ .../wasitests/snapshot1_hello.rs | 7 +- .../wasitests/snapshot1_isatty.rs | 7 +- tests/wasitests/snapshot1_mapdir.rs | 16 +++++ tests/wasitests/snapshot1_path_link.rs | 16 +++++ tests/wasitests/snapshot1_path_rename.rs | 16 +++++ tests/wasitests/snapshot1_path_symlink.rs | 16 +++++ tests/wasitests/snapshot1_poll_oneoff.rs | 17 +++++ .../wasitests/snapshot1_quine.rs | 7 +- tests/wasitests/snapshot1_readlink.rs | 16 +++++ .../snapshot1_wasi_sees_virtual_root.rs | 16 +++++ tests/wasitests/snapshot1_writing.rs | 16 +++++ tests/wasitests/unstable_close_preopen_fd.rs | 16 +++++ .../wasitests/unstable_create_dir.rs | 7 +- .../wasitests/unstable_envvar.rs | 9 +-- tests/wasitests/unstable_fd_allocate.rs | 16 +++++ tests/wasitests/unstable_fd_append.rs | 16 +++++ tests/wasitests/unstable_fd_close.rs | 16 +++++ tests/wasitests/unstable_fd_pread.rs | 16 +++++ tests/wasitests/unstable_fd_read.rs | 16 +++++ tests/wasitests/unstable_fd_sync.rs | 16 +++++ .../wasitests/unstable_file_metadata.rs | 7 +- .../wasitests/unstable_fs_sandbox_test.rs | 7 +- tests/wasitests/unstable_fseek.rs | 16 +++++ .../wasitests/unstable_hello.rs | 7 +- .../wasitests/unstable_isatty.rs | 7 +- tests/wasitests/unstable_mapdir.rs | 16 +++++ tests/wasitests/unstable_path_link.rs | 16 +++++ tests/wasitests/unstable_path_rename.rs | 16 +++++ tests/wasitests/unstable_path_symlink.rs | 16 +++++ tests/wasitests/unstable_poll_oneoff.rs | 16 +++++ .../wasitests/unstable_quine.rs | 7 +- tests/wasitests/unstable_readlink.rs | 16 +++++ .../unstable_wasi_sees_virtual_root.rs | 16 +++++ tests/wasitests/unstable_writing.rs | 16 +++++ 222 files changed, 765 insertions(+), 986 deletions(-) rename {lib/middleware-common-tests/benches => benches}/metering_benchmark.rs (97%) create mode 100644 build.rs delete mode 100644 lib/api-tests/Cargo.toml delete mode 100644 lib/api-tests/src/lib.rs delete mode 100644 lib/llvm-backend-tests/Cargo.toml delete mode 100644 lib/llvm-backend-tests/src/lib.rs delete mode 100644 lib/middleware-common-tests/Cargo.toml delete mode 100644 lib/runtime-core-tests/Cargo.toml delete mode 100644 lib/wasi-tests/Cargo.toml delete mode 100644 lib/wasi-tests/tests/wasitests/snapshot1_close_preopen_fd.rs delete mode 100644 lib/wasi-tests/tests/wasitests/snapshot1_fd_allocate.rs delete mode 100644 lib/wasi-tests/tests/wasitests/snapshot1_fd_append.rs delete mode 100644 lib/wasi-tests/tests/wasitests/snapshot1_fd_close.rs delete mode 100644 lib/wasi-tests/tests/wasitests/snapshot1_fd_pread.rs delete mode 100644 lib/wasi-tests/tests/wasitests/snapshot1_fd_read.rs delete mode 100644 lib/wasi-tests/tests/wasitests/snapshot1_fd_sync.rs delete mode 100644 lib/wasi-tests/tests/wasitests/snapshot1_fseek.rs delete mode 100644 lib/wasi-tests/tests/wasitests/snapshot1_mapdir.rs delete mode 100644 lib/wasi-tests/tests/wasitests/snapshot1_path_link.rs delete mode 100644 lib/wasi-tests/tests/wasitests/snapshot1_path_rename.rs delete mode 100644 lib/wasi-tests/tests/wasitests/snapshot1_path_symlink.rs delete mode 100644 lib/wasi-tests/tests/wasitests/snapshot1_poll_oneoff.rs delete mode 100644 lib/wasi-tests/tests/wasitests/snapshot1_readlink.rs delete mode 100644 lib/wasi-tests/tests/wasitests/snapshot1_wasi_sees_virtual_root.rs delete mode 100644 lib/wasi-tests/tests/wasitests/snapshot1_writing.rs delete mode 100644 lib/wasi-tests/tests/wasitests/unstable_close_preopen_fd.rs delete mode 100644 lib/wasi-tests/tests/wasitests/unstable_fd_allocate.rs delete mode 100644 lib/wasi-tests/tests/wasitests/unstable_fd_append.rs delete mode 100644 lib/wasi-tests/tests/wasitests/unstable_fd_close.rs delete mode 100644 lib/wasi-tests/tests/wasitests/unstable_fd_pread.rs delete mode 100644 lib/wasi-tests/tests/wasitests/unstable_fd_read.rs delete mode 100644 lib/wasi-tests/tests/wasitests/unstable_fd_sync.rs delete mode 100644 lib/wasi-tests/tests/wasitests/unstable_fseek.rs delete mode 100644 lib/wasi-tests/tests/wasitests/unstable_mapdir.rs delete mode 100644 lib/wasi-tests/tests/wasitests/unstable_path_link.rs delete mode 100644 lib/wasi-tests/tests/wasitests/unstable_path_rename.rs delete mode 100644 lib/wasi-tests/tests/wasitests/unstable_path_symlink.rs delete mode 100644 lib/wasi-tests/tests/wasitests/unstable_poll_oneoff.rs delete mode 100644 lib/wasi-tests/tests/wasitests/unstable_readlink.rs delete mode 100644 lib/wasi-tests/tests/wasitests/unstable_wasi_sees_virtual_root.rs delete mode 100644 lib/wasi-tests/tests/wasitests/unstable_writing.rs rename {lib/runtime-core-tests/tests => tests}/exception_handling.rs (87%) create mode 100644 tests/generate-wasi-tests/Cargo.toml rename lib/wasi-tests/build/mod.rs => tests/generate-wasi-tests/src/lib.rs (52%) rename {lib/wasi-tests/build => tests/generate-wasi-tests/src}/set_up_toolchain.rs (95%) rename {lib/wasi-tests/build => tests/generate-wasi-tests/src}/util.rs (100%) rename {lib/wasi-tests/build => tests/generate-wasi-tests/src}/wasi_version.rs (100%) rename {lib/wasi-tests/build => tests/generate-wasi-tests/src}/wasitests.rs (87%) rename {lib/api-tests/tests => tests}/high_level_api.rs (100%) rename {lib/runtime-core-tests/tests => tests}/imports.rs (99%) rename lib/llvm-backend-tests/tests/compile.rs => tests/llvm_compile.rs (84%) rename lib/middleware-common-tests/src/lib.rs => tests/middleware_common.rs (94%) rename lib/runtime-core-tests/src/lib.rs => tests/runtime_core_tests/mod.rs (100%) rename lib/wasi-tests/src/lib.rs => tests/wasi_serialization.rs (90%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/close_preopen_fd.out (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/close_preopen_fd.rs (95%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/create_dir.out (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/create_dir.rs (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/envvar.out (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/envvar.rs (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/fd_allocate.out (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/fd_allocate.rs (97%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/fd_append.out (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/fd_append.rs (90%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/fd_close.out (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/fd_close.rs (92%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/fd_pread.out (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/fd_pread.rs (93%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/fd_read.out (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/fd_read.rs (93%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/fd_sync.out (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/fd_sync.rs (96%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/file_metadata.out (73%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/file_metadata.rs (73%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/fs_sandbox_test.out (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/fs_sandbox_test.rs (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/fseek.out (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/fseek.rs (91%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/hello.out (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/hello.rs (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/ignores.txt (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/isatty.out (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/isatty.rs (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/mapdir.out (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/mapdir.rs (69%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/path_link.out (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/path_link.rs (92%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/path_rename.out (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/path_rename.rs (93%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/path_symlink.out (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/path_symlink.rs (79%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/poll_oneoff.out (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/poll_oneoff.rs (97%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/quine.out (74%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/quine.rs (74%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/readlink.out (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/readlink.rs (78%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/snapshot1/close_preopen_fd.wasm (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/snapshot1/create_dir.wasm (99%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/snapshot1/envvar.wasm (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/snapshot1/fd_allocate.wasm (99%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/snapshot1/fd_append.wasm (99%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/snapshot1/fd_close.wasm (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/snapshot1/fd_pread.wasm (99%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/snapshot1/fd_read.wasm (99%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/snapshot1/fd_sync.wasm (99%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/snapshot1/file_metadata.wasm (59%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/snapshot1/fs_sandbox_test.wasm (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/snapshot1/fseek.wasm (99%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/snapshot1/hello.wasm (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/snapshot1/isatty.wasm (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/snapshot1/mapdir.wasm (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/snapshot1/path_link.wasm (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/snapshot1/path_rename.wasm (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/snapshot1/path_symlink.wasm (99%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/snapshot1/poll_oneoff.wasm (99%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/snapshot1/quine.wasm (59%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/snapshot1/readlink.wasm (99%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/snapshot1/wasi_sees_virtual_root.wasm (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/snapshot1/writing.wasm (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/test_fs/README.md (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/test_fs/hamlet/README.md (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/test_fs/hamlet/act1/scene1.txt (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/test_fs/hamlet/act1/scene2.txt (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/test_fs/hamlet/act1/scene3.txt (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/test_fs/hamlet/act1/scene4.txt (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/test_fs/hamlet/act1/scene5.txt (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/test_fs/hamlet/act2/scene1.txt (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/test_fs/hamlet/act2/scene2.txt (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/test_fs/hamlet/act3/scene1.txt (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/test_fs/hamlet/act3/scene2.txt (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/test_fs/hamlet/act3/scene3.txt (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/test_fs/hamlet/act3/scene4.txt (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/test_fs/hamlet/act4/scene1.txt (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/test_fs/hamlet/act4/scene2.txt (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/test_fs/hamlet/act4/scene3.txt (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/test_fs/hamlet/act4/scene4.txt (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/test_fs/hamlet/act4/scene5.txt (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/test_fs/hamlet/act4/scene6.txt (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/test_fs/hamlet/act4/scene7.txt (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/test_fs/hamlet/act5/scene1.txt (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/test_fs/hamlet/act5/scene2.txt (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/test_fs/hamlet/bookmarks/2019-07-16 (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/unstable/close_preopen_fd.wasm (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/unstable/create_dir.wasm (99%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/unstable/envvar.wasm (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/unstable/fd_allocate.wasm (99%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/unstable/fd_append.wasm (99%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/unstable/fd_close.wasm (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/unstable/fd_pread.wasm (99%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/unstable/fd_read.wasm (99%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/unstable/fd_sync.wasm (99%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/unstable/file_metadata.wasm (58%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/unstable/fs_sandbox_test.wasm (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/unstable/fseek.wasm (99%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/unstable/hello.wasm (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/unstable/isatty.wasm (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/unstable/mapdir.wasm (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/unstable/path_link.wasm (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/unstable/path_rename.wasm (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/unstable/path_symlink.wasm (99%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/unstable/poll_oneoff.wasm (99%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/unstable/quine.wasm (58%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/unstable/readlink.wasm (99%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/unstable/wasi_sees_virtual_root.wasm (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/unstable/writing.wasm (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/wasi_sees_virtual_root.out (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/wasi_sees_virtual_root.rs (88%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/writing.out (100%) rename {lib/wasi-tests/wasitests => tests/wasi_test_resources}/writing.rs (71%) rename {lib/wasi-tests/tests => tests}/wasitest.rs (100%) rename {lib/wasi-tests/tests => tests/wasitests}/README.md (100%) rename {lib/wasi-tests/tests => tests}/wasitests/_common.rs (94%) rename {lib/wasi-tests/tests => tests}/wasitests/mod.rs (95%) create mode 100644 tests/wasitests/snapshot1_close_preopen_fd.rs rename {lib/wasi-tests/tests => tests}/wasitests/snapshot1_create_dir.rs (63%) rename {lib/wasi-tests/tests => tests}/wasitests/snapshot1_envvar.rs (51%) create mode 100644 tests/wasitests/snapshot1_fd_allocate.rs create mode 100644 tests/wasitests/snapshot1_fd_append.rs create mode 100644 tests/wasitests/snapshot1_fd_close.rs create mode 100644 tests/wasitests/snapshot1_fd_pread.rs create mode 100644 tests/wasitests/snapshot1_fd_read.rs create mode 100644 tests/wasitests/snapshot1_fd_sync.rs rename {lib/wasi-tests/tests => tests}/wasitests/snapshot1_file_metadata.rs (63%) rename {lib/wasi-tests/tests => tests}/wasitests/snapshot1_fs_sandbox_test.rs (60%) create mode 100644 tests/wasitests/snapshot1_fseek.rs rename {lib/wasi-tests/tests => tests}/wasitests/snapshot1_hello.rs (61%) rename {lib/wasi-tests/tests => tests}/wasitests/snapshot1_isatty.rs (61%) create mode 100644 tests/wasitests/snapshot1_mapdir.rs create mode 100644 tests/wasitests/snapshot1_path_link.rs create mode 100644 tests/wasitests/snapshot1_path_rename.rs create mode 100644 tests/wasitests/snapshot1_path_symlink.rs create mode 100644 tests/wasitests/snapshot1_poll_oneoff.rs rename {lib/wasi-tests/tests => tests}/wasitests/snapshot1_quine.rs (64%) create mode 100644 tests/wasitests/snapshot1_readlink.rs create mode 100644 tests/wasitests/snapshot1_wasi_sees_virtual_root.rs create mode 100644 tests/wasitests/snapshot1_writing.rs create mode 100644 tests/wasitests/unstable_close_preopen_fd.rs rename {lib/wasi-tests/tests => tests}/wasitests/unstable_create_dir.rs (63%) rename {lib/wasi-tests/tests => tests}/wasitests/unstable_envvar.rs (51%) create mode 100644 tests/wasitests/unstable_fd_allocate.rs create mode 100644 tests/wasitests/unstable_fd_append.rs create mode 100644 tests/wasitests/unstable_fd_close.rs create mode 100644 tests/wasitests/unstable_fd_pread.rs create mode 100644 tests/wasitests/unstable_fd_read.rs create mode 100644 tests/wasitests/unstable_fd_sync.rs rename {lib/wasi-tests/tests => tests}/wasitests/unstable_file_metadata.rs (63%) rename {lib/wasi-tests/tests => tests}/wasitests/unstable_fs_sandbox_test.rs (60%) create mode 100644 tests/wasitests/unstable_fseek.rs rename {lib/wasi-tests/tests => tests}/wasitests/unstable_hello.rs (61%) rename {lib/wasi-tests/tests => tests}/wasitests/unstable_isatty.rs (61%) create mode 100644 tests/wasitests/unstable_mapdir.rs create mode 100644 tests/wasitests/unstable_path_link.rs create mode 100644 tests/wasitests/unstable_path_rename.rs create mode 100644 tests/wasitests/unstable_path_symlink.rs create mode 100644 tests/wasitests/unstable_poll_oneoff.rs rename {lib/wasi-tests/tests => tests}/wasitests/unstable_quine.rs (64%) create mode 100644 tests/wasitests/unstable_readlink.rs create mode 100644 tests/wasitests/unstable_wasi_sees_virtual_root.rs create mode 100644 tests/wasitests/unstable_writing.rs diff --git a/Cargo.lock b/Cargo.lock index f5bd1eaae9c..2c1dd2b47be 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -30,14 +30,6 @@ version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7825f6833612eb2414095684fcf6c635becf3ce97fe48cf6421321e93bfbd53c" -[[package]] -name = "api-tests" -version = "0.16.2" -dependencies = [ - "wabt", - "wasmer", -] - [[package]] name = "arrayref" version = "0.3.6" @@ -761,6 +753,14 @@ version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" +[[package]] +name = "generate-wasi-tests" +version = "0.16.2" +dependencies = [ + "glob 0.3.0", + "tempfile", +] + [[package]] name = "generational-arena" version = "0.2.7" @@ -2739,8 +2739,10 @@ version = "0.16.2" dependencies = [ "atty", "byteorder", + "criterion", "errno", "fern", + "generate-wasi-tests", "glob 0.3.0", "log", "rustc_version", @@ -2756,13 +2758,11 @@ dependencies = [ "wasmer-kernel-loader", "wasmer-llvm-backend", "wasmer-middleware-common", - "wasmer-middleware-common-tests", "wasmer-runtime", "wasmer-runtime-core", "wasmer-singlepass-backend", "wasmer-wasi", "wasmer-wasi-experimental-io-devices", - "wasmer-wasi-tests", ] [[package]] @@ -2887,16 +2887,6 @@ dependencies = [ "winapi 0.3.8", ] -[[package]] -name = "wasmer-llvm-backend-tests" -version = "0.10.2" -dependencies = [ - "wabt", - "wasmer-llvm-backend", - "wasmer-runtime", - "wasmer-runtime-core", -] - [[package]] name = "wasmer-middleware-common" version = "0.16.2" @@ -2904,19 +2894,6 @@ dependencies = [ "wasmer-runtime-core", ] -[[package]] -name = "wasmer-middleware-common-tests" -version = "0.16.2" -dependencies = [ - "criterion", - "wabt", - "wasmer-clif-backend", - "wasmer-llvm-backend", - "wasmer-middleware-common", - "wasmer-runtime-core", - "wasmer-singlepass-backend", -] - [[package]] name = "wasmer-runtime" version = "0.16.2" @@ -2974,17 +2951,6 @@ dependencies = [ "winapi 0.3.8", ] -[[package]] -name = "wasmer-runtime-core-tests" -version = "0.16.2" -dependencies = [ - "wabt", - "wasmer-clif-backend", - "wasmer-llvm-backend", - "wasmer-runtime-core", - "wasmer-singlepass-backend", -] - [[package]] name = "wasmer-singlepass-backend" version = "0.16.2" @@ -3044,20 +3010,6 @@ dependencies = [ "wasmer-wasi", ] -[[package]] -name = "wasmer-wasi-tests" -version = "0.16.2" -dependencies = [ - "glob 0.3.0", - "tempfile", - "wasmer-clif-backend", - "wasmer-dev-utils", - "wasmer-llvm-backend", - "wasmer-runtime", - "wasmer-singlepass-backend", - "wasmer-wasi", -] - [[package]] name = "wasmer-win-exception-handler" version = "0.16.2" diff --git a/Cargo.toml b/Cargo.toml index ff1ae68894b..94254f7b181 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -38,49 +38,48 @@ wasmer-llvm-backend = { path = "lib/llvm-backend", optional = true } wasmer-wasi = { path = "lib/wasi", optional = true } wasmer-kernel-loader = { path = "lib/kernel-loader", optional = true } wasmer-dev-utils = { path = "lib/dev-utils", optional = true } -wasmer-wasi-tests = { path = "lib/wasi-tests", optional = true } -wasmer-middleware-common-tests = { path = "lib/middleware-common-tests", optional = true } wasmer-emscripten-tests = { path = "lib/emscripten-tests", optional = true } wasmer-wasi-experimental-io-devices = { path = "lib/wasi-experimental-io-devices", optional = true } [workspace] members = [ "lib/api", - "lib/api-tests", "lib/clif-backend", "lib/singlepass-backend", "lib/runtime", "lib/runtime-core", - "lib/runtime-core-tests", "lib/emscripten", "lib/spectests", "lib/win-exception-handler", "lib/runtime-c-api", "lib/llvm-backend", - "lib/llvm-backend-tests", "lib/wasi", "lib/middleware-common", "lib/kernel-loader", "lib/kernel-net", "lib/dev-utils", "lib/wasi-experimental-io-devices", - "lib/wasi-tests", "lib/emscripten-tests", - "lib/middleware-common-tests", "lib/interface-types", "examples/parallel", "examples/plugin-for-example", "examples/parallel-guest", + "tests/generate-wasi-tests", ] [build-dependencies] wabt = "0.9.1" +generate-wasi-tests = { path = "tests/generate-wasi-tests" } glob = "0.3" rustc_version = "0.2" [dev-dependencies] +criterion = "0.3" +glob = "0.3" serde = { version = "1", features = ["derive"] } # used by the plugin example typetag = "0.1" # used by the plugin example +wabt = "0.9.1" +wasmer-dev-utils = { path = "lib/dev-utils" } [features] default = ["fast-tests", "wasi", "backend-cranelift", "wabt"] @@ -95,18 +94,15 @@ backend-cranelift = [ "wasmer-clif-backend/generate-debug-information", "wasmer-runtime-core/generate-debug-information", "wasmer-runtime/cranelift", - "wasmer-middleware-common-tests/clif", ] backend-llvm = [ "wasmer-llvm-backend", "wasmer-runtime/llvm", - "wasmer-middleware-common-tests/llvm", "wasmer-runtime-core/generate-debug-information-no-export-symbols" ] backend-singlepass = [ "wasmer-singlepass-backend", "wasmer-runtime/singlepass", - "wasmer-middleware-common-tests/singlepass", ] wasi = ["wasmer-wasi"] experimental-io-devices = ["wasmer-wasi-experimental-io-devices"] @@ -118,4 +114,4 @@ crate-type = ["bin"] [[example]] name = "callback" -crate-type = ["bin"] +crate-type = ["bin"] \ No newline at end of file diff --git a/lib/middleware-common-tests/benches/metering_benchmark.rs b/benches/metering_benchmark.rs similarity index 97% rename from lib/middleware-common-tests/benches/metering_benchmark.rs rename to benches/metering_benchmark.rs index 501e0178f1a..838df49403a 100644 --- a/lib/middleware-common-tests/benches/metering_benchmark.rs +++ b/benches/metering_benchmark.rs @@ -133,7 +133,7 @@ static WAT_GAS: &'static str = r#" (elem (i32.const 0) $f2)) "#; -#[cfg(feature = "llvm")] +#[cfg(feature = "backend-llvm")] fn get_compiler(limit: u64, metering: bool) -> impl Compiler { use wasmer_llvm_backend::ModuleCodeGenerator; use wasmer_runtime_core::codegen::{MiddlewareChain, StreamingCompiler}; @@ -148,7 +148,7 @@ fn get_compiler(limit: u64, metering: bool) -> impl Compiler { c } -#[cfg(feature = "singlepass")] +#[cfg(feature = "backend-singlepass")] fn get_compiler(limit: u64, metering: bool) -> impl Compiler { use wasmer_runtime_core::codegen::{MiddlewareChain, StreamingCompiler}; use wasmer_singlepass_backend::ModuleCodeGenerator as SinglePassMCG; @@ -162,10 +162,14 @@ fn get_compiler(limit: u64, metering: bool) -> impl Compiler { c } -#[cfg(not(any(feature = "llvm", feature = "clif", feature = "singlepass")))] +#[cfg(not(any( + feature = "backend-llvm", + feature = "backend-cranelift", + feature = "backend-singlepass" +)))] compile_error!("compiler not specified, activate a compiler via features"); -#[cfg(feature = "clif")] +#[cfg(feature = "backend-cranelift")] fn get_compiler(_limit: u64, metering: bool) -> impl Compiler { compile_error!("cranelift does not implement metering"); use wasmer_clif_backend::CraneliftCompiler; diff --git a/build.rs b/build.rs new file mode 100644 index 00000000000..b0df199eeaa --- /dev/null +++ b/build.rs @@ -0,0 +1,9 @@ +//! A kind of meta-build.rs that can be configured to do different things. +//! +//! Please try to keep this file as clean as possible. + +use generate_wasi_tests; + +fn main() { + generate_wasi_tests::build(); +} diff --git a/lib/api-tests/Cargo.toml b/lib/api-tests/Cargo.toml deleted file mode 100644 index 03713b5c8aa..00000000000 --- a/lib/api-tests/Cargo.toml +++ /dev/null @@ -1,15 +0,0 @@ -[package] -name = "api-tests" -version = "0.16.2" -authors = ["The Wasmer Engineering Team "] -edition = "2018" -license = "MIT" -publish = false - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -wasmer = { version = "0.16.2", path = "../api" } - -[dev-dependencies] -wabt = "0.9.1" \ No newline at end of file diff --git a/lib/api-tests/src/lib.rs b/lib/api-tests/src/lib.rs deleted file mode 100644 index 8b137891791..00000000000 --- a/lib/api-tests/src/lib.rs +++ /dev/null @@ -1 +0,0 @@ - diff --git a/lib/llvm-backend-tests/Cargo.toml b/lib/llvm-backend-tests/Cargo.toml deleted file mode 100644 index e916850aaae..00000000000 --- a/lib/llvm-backend-tests/Cargo.toml +++ /dev/null @@ -1,16 +0,0 @@ -[package] -name = "wasmer-llvm-backend-tests" -version = "0.10.2" -authors = ["Nick Lewycky "] -license = "MIT" -edition = "2018" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -wabt = "0.9.1" -wasmer-runtime-core = { path = "../runtime-core", version = "0.16.2" } -wasmer-runtime = { path = "../runtime", version = "0.16.2" } -wasmer-llvm-backend = { path = "../llvm-backend", version = "0.16.2", features = ["test"] } - -[features] diff --git a/lib/llvm-backend-tests/src/lib.rs b/lib/llvm-backend-tests/src/lib.rs deleted file mode 100644 index ccea312aa54..00000000000 --- a/lib/llvm-backend-tests/src/lib.rs +++ /dev/null @@ -1,17 +0,0 @@ -#![deny( - dead_code, - nonstandard_style, - unused_imports, - unused_mut, - unused_variables, - unused_unsafe, - unreachable_patterns -)] - -pub use wabt::wat2wasm; -use wasmer_llvm_backend::LLVMCompiler; -use wasmer_runtime_core::backend::Compiler; - -pub fn get_compiler() -> impl Compiler { - LLVMCompiler::new() -} diff --git a/lib/middleware-common-tests/Cargo.toml b/lib/middleware-common-tests/Cargo.toml deleted file mode 100644 index 2a41ffc7d3a..00000000000 --- a/lib/middleware-common-tests/Cargo.toml +++ /dev/null @@ -1,28 +0,0 @@ -[package] -name = "wasmer-middleware-common-tests" -version = "0.16.2" -authors = ["The Wasmer Engineering Team "] -edition = "2018" -repository = "https://github.com/wasmerio/wasmer" -license = "MIT" -publish = false - -[dependencies] -wasmer-runtime-core = { path = "../runtime-core", version = "0.16.2" } -wasmer-middleware-common = { path = "../middleware-common", version = "0.16.2" } -wasmer-clif-backend = { path = "../clif-backend", version = "0.16.2", optional = true } -wasmer-llvm-backend = { path = "../llvm-backend", version = "0.16.2", features = ["test"], optional = true } -wasmer-singlepass-backend = { path = "../singlepass-backend", version = "0.16.2", optional = true } - -[features] -clif = ["wasmer-clif-backend"] -llvm = ["wasmer-llvm-backend"] -singlepass = ["wasmer-singlepass-backend"] - -[dev-dependencies] -wabt = "0.9.1" -criterion = "0.3" - -[[bench]] -name = "metering_benchmark" -harness = false diff --git a/lib/runtime-core-tests/Cargo.toml b/lib/runtime-core-tests/Cargo.toml deleted file mode 100644 index 7ea842d8c7c..00000000000 --- a/lib/runtime-core-tests/Cargo.toml +++ /dev/null @@ -1,21 +0,0 @@ -[package] -name = "wasmer-runtime-core-tests" -version = "0.16.2" -description = "Tests for the Wasmer runtime core crate" -license = "MIT" -authors = ["The Wasmer Engineering Team "] -edition = "2018" -publish = false - -[dependencies] -wabt = "0.9.1" -wasmer-runtime-core = { path = "../runtime-core", version = "0.16.2" } -wasmer-clif-backend = { path = "../clif-backend", version = "0.16.2", optional = true } -wasmer-singlepass-backend = { path = "../singlepass-backend", version = "0.16.2", optional = true } -wasmer-llvm-backend = { path = "../llvm-backend", version = "0.16.2", features = ["test"], optional = true } - -[features] -default = ["backend-cranelift"] -backend-cranelift = ["wasmer-clif-backend"] -backend-singlepass = ["wasmer-singlepass-backend"] -backend-llvm = ["wasmer-llvm-backend"] diff --git a/lib/wasi-tests/Cargo.toml b/lib/wasi-tests/Cargo.toml deleted file mode 100644 index 402fd599451..00000000000 --- a/lib/wasi-tests/Cargo.toml +++ /dev/null @@ -1,30 +0,0 @@ -[package] -name = "wasmer-wasi-tests" -version = "0.16.2" -description = "Tests for our WASI implementation" -license = "MIT" -authors = ["The Wasmer Engineering Team "] -edition = "2018" -publish = false -build = "build/mod.rs" - -[dependencies] -# We set default features to false to be able to use the singlepass backend properly -wasmer-runtime = { path = "../runtime", version = "0.16.2", default-features = false } -wasmer-wasi = { path = "../wasi", version = "0.16.2" } -# hack to get tests to work -wasmer-clif-backend = { path = "../clif-backend", version = "0.16.2", optional = true} -wasmer-singlepass-backend = { path = "../singlepass-backend", version = "0.16.2", optional = true } -wasmer-llvm-backend = { path = "../llvm-backend", version = "0.16.2", features = ["test"], optional = true } - -[build-dependencies] -glob = "0.3" -tempfile = "3" - -[dev-dependencies] -wasmer-dev-utils = { path = "../dev-utils", version = "0.16.2"} - -[features] -clif = ["wasmer-clif-backend", "wasmer-runtime/default-backend-cranelift"] -singlepass = ["wasmer-singlepass-backend", "wasmer-runtime/default-backend-singlepass"] -llvm = ["wasmer-llvm-backend", "wasmer-runtime/default-backend-llvm"] diff --git a/lib/wasi-tests/tests/wasitests/snapshot1_close_preopen_fd.rs b/lib/wasi-tests/tests/wasitests/snapshot1_close_preopen_fd.rs deleted file mode 100644 index e887861c857..00000000000 --- a/lib/wasi-tests/tests/wasitests/snapshot1_close_preopen_fd.rs +++ /dev/null @@ -1,19 +0,0 @@ -// !!! THIS IS A GENERATED FILE !!! -// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). - -#[test] -#[ignore] -fn test_snapshot1_close_preopen_fd() { - assert_wasi_output!( - "../../wasitests/snapshot1/close_preopen_fd.wasm", - "snapshot1_close_preopen_fd", - vec![], - vec![( - "hamlet".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/hamlet") - ),], - vec![], - "../../wasitests/close_preopen_fd.out" - ); -} diff --git a/lib/wasi-tests/tests/wasitests/snapshot1_fd_allocate.rs b/lib/wasi-tests/tests/wasitests/snapshot1_fd_allocate.rs deleted file mode 100644 index a3f1caf9daf..00000000000 --- a/lib/wasi-tests/tests/wasitests/snapshot1_fd_allocate.rs +++ /dev/null @@ -1,19 +0,0 @@ -// !!! THIS IS A GENERATED FILE !!! -// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). - -#[test] -#[ignore] -fn test_snapshot1_fd_allocate() { - assert_wasi_output!( - "../../wasitests/snapshot1/fd_allocate.wasm", - "snapshot1_fd_allocate", - vec![], - vec![( - ".".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/temp") - ),], - vec![], - "../../wasitests/fd_allocate.out" - ); -} diff --git a/lib/wasi-tests/tests/wasitests/snapshot1_fd_append.rs b/lib/wasi-tests/tests/wasitests/snapshot1_fd_append.rs deleted file mode 100644 index a160be58d59..00000000000 --- a/lib/wasi-tests/tests/wasitests/snapshot1_fd_append.rs +++ /dev/null @@ -1,18 +0,0 @@ -// !!! THIS IS A GENERATED FILE !!! -// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). - -#[test] -fn test_snapshot1_fd_append() { - assert_wasi_output!( - "../../wasitests/snapshot1/fd_append.wasm", - "snapshot1_fd_append", - vec![], - vec![( - ".".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/temp") - ),], - vec![], - "../../wasitests/fd_append.out" - ); -} diff --git a/lib/wasi-tests/tests/wasitests/snapshot1_fd_close.rs b/lib/wasi-tests/tests/wasitests/snapshot1_fd_close.rs deleted file mode 100644 index ab56e38742d..00000000000 --- a/lib/wasi-tests/tests/wasitests/snapshot1_fd_close.rs +++ /dev/null @@ -1,19 +0,0 @@ -// !!! THIS IS A GENERATED FILE !!! -// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). - -#[test] -#[ignore] -fn test_snapshot1_fd_close() { - assert_wasi_output!( - "../../wasitests/snapshot1/fd_close.wasm", - "snapshot1_fd_close", - vec![], - vec![( - ".".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/hamlet") - ),], - vec![], - "../../wasitests/fd_close.out" - ); -} diff --git a/lib/wasi-tests/tests/wasitests/snapshot1_fd_pread.rs b/lib/wasi-tests/tests/wasitests/snapshot1_fd_pread.rs deleted file mode 100644 index 77ea8123e70..00000000000 --- a/lib/wasi-tests/tests/wasitests/snapshot1_fd_pread.rs +++ /dev/null @@ -1,19 +0,0 @@ -// !!! THIS IS A GENERATED FILE !!! -// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). - -#[test] -#[ignore] -fn test_snapshot1_fd_pread() { - assert_wasi_output!( - "../../wasitests/snapshot1/fd_pread.wasm", - "snapshot1_fd_pread", - vec![], - vec![( - ".".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/hamlet") - ),], - vec![], - "../../wasitests/fd_pread.out" - ); -} diff --git a/lib/wasi-tests/tests/wasitests/snapshot1_fd_read.rs b/lib/wasi-tests/tests/wasitests/snapshot1_fd_read.rs deleted file mode 100644 index 58f63824942..00000000000 --- a/lib/wasi-tests/tests/wasitests/snapshot1_fd_read.rs +++ /dev/null @@ -1,19 +0,0 @@ -// !!! THIS IS A GENERATED FILE !!! -// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). - -#[test] -#[ignore] -fn test_snapshot1_fd_read() { - assert_wasi_output!( - "../../wasitests/snapshot1/fd_read.wasm", - "snapshot1_fd_read", - vec![], - vec![( - ".".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/hamlet") - ),], - vec![], - "../../wasitests/fd_read.out" - ); -} diff --git a/lib/wasi-tests/tests/wasitests/snapshot1_fd_sync.rs b/lib/wasi-tests/tests/wasitests/snapshot1_fd_sync.rs deleted file mode 100644 index fcbb252a2b1..00000000000 --- a/lib/wasi-tests/tests/wasitests/snapshot1_fd_sync.rs +++ /dev/null @@ -1,18 +0,0 @@ -// !!! THIS IS A GENERATED FILE !!! -// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). - -#[test] -fn test_snapshot1_fd_sync() { - assert_wasi_output!( - "../../wasitests/snapshot1/fd_sync.wasm", - "snapshot1_fd_sync", - vec![], - vec![( - ".".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/temp") - ),], - vec![], - "../../wasitests/fd_sync.out" - ); -} diff --git a/lib/wasi-tests/tests/wasitests/snapshot1_fseek.rs b/lib/wasi-tests/tests/wasitests/snapshot1_fseek.rs deleted file mode 100644 index 8e1cbac625c..00000000000 --- a/lib/wasi-tests/tests/wasitests/snapshot1_fseek.rs +++ /dev/null @@ -1,18 +0,0 @@ -// !!! THIS IS A GENERATED FILE !!! -// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). - -#[test] -fn test_snapshot1_fseek() { - assert_wasi_output!( - "../../wasitests/snapshot1/fseek.wasm", - "snapshot1_fseek", - vec![], - vec![( - ".".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/hamlet") - ),], - vec![], - "../../wasitests/fseek.out" - ); -} diff --git a/lib/wasi-tests/tests/wasitests/snapshot1_mapdir.rs b/lib/wasi-tests/tests/wasitests/snapshot1_mapdir.rs deleted file mode 100644 index 32cfae71622..00000000000 --- a/lib/wasi-tests/tests/wasitests/snapshot1_mapdir.rs +++ /dev/null @@ -1,18 +0,0 @@ -// !!! THIS IS A GENERATED FILE !!! -// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). - -#[test] -fn test_snapshot1_mapdir() { - assert_wasi_output!( - "../../wasitests/snapshot1/mapdir.wasm", - "snapshot1_mapdir", - vec![], - vec![( - ".".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/hamlet") - ),], - vec![], - "../../wasitests/mapdir.out" - ); -} diff --git a/lib/wasi-tests/tests/wasitests/snapshot1_path_link.rs b/lib/wasi-tests/tests/wasitests/snapshot1_path_link.rs deleted file mode 100644 index ee99737b6f1..00000000000 --- a/lib/wasi-tests/tests/wasitests/snapshot1_path_link.rs +++ /dev/null @@ -1,24 +0,0 @@ -// !!! THIS IS A GENERATED FILE !!! -// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). - -#[test] -fn test_snapshot1_path_link() { - assert_wasi_output!( - "../../wasitests/snapshot1/path_link.wasm", - "snapshot1_path_link", - vec![], - vec![ - ( - "act5".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/hamlet/act5") - ), - ( - "temp".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/temp") - ), - ], - vec![], - "../../wasitests/path_link.out" - ); -} diff --git a/lib/wasi-tests/tests/wasitests/snapshot1_path_rename.rs b/lib/wasi-tests/tests/wasitests/snapshot1_path_rename.rs deleted file mode 100644 index 577165f49ca..00000000000 --- a/lib/wasi-tests/tests/wasitests/snapshot1_path_rename.rs +++ /dev/null @@ -1,18 +0,0 @@ -// !!! THIS IS A GENERATED FILE !!! -// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). - -#[test] -fn test_snapshot1_path_rename() { - assert_wasi_output!( - "../../wasitests/snapshot1/path_rename.wasm", - "snapshot1_path_rename", - vec![], - vec![( - "temp".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/temp") - ),], - vec![], - "../../wasitests/path_rename.out" - ); -} diff --git a/lib/wasi-tests/tests/wasitests/snapshot1_path_symlink.rs b/lib/wasi-tests/tests/wasitests/snapshot1_path_symlink.rs deleted file mode 100644 index 923619ba34b..00000000000 --- a/lib/wasi-tests/tests/wasitests/snapshot1_path_symlink.rs +++ /dev/null @@ -1,24 +0,0 @@ -// !!! THIS IS A GENERATED FILE !!! -// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). - -#[test] -fn test_snapshot1_path_symlink() { - assert_wasi_output!( - "../../wasitests/snapshot1/path_symlink.wasm", - "snapshot1_path_symlink", - vec![], - vec![ - ( - "temp".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/temp") - ), - ( - "hamlet".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/hamlet") - ), - ], - vec![], - "../../wasitests/path_symlink.out" - ); -} diff --git a/lib/wasi-tests/tests/wasitests/snapshot1_poll_oneoff.rs b/lib/wasi-tests/tests/wasitests/snapshot1_poll_oneoff.rs deleted file mode 100644 index bc689194f88..00000000000 --- a/lib/wasi-tests/tests/wasitests/snapshot1_poll_oneoff.rs +++ /dev/null @@ -1,25 +0,0 @@ -// !!! THIS IS A GENERATED FILE !!! -// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). - -#[test] -#[ignore] -fn test_snapshot1_poll_oneoff() { - assert_wasi_output!( - "../../wasitests/snapshot1/poll_oneoff.wasm", - "snapshot1_poll_oneoff", - vec![], - vec![ - ( - "hamlet".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/hamlet") - ), - ( - "temp".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/temp") - ), - ], - vec![], - "../../wasitests/poll_oneoff.out" - ); -} diff --git a/lib/wasi-tests/tests/wasitests/snapshot1_readlink.rs b/lib/wasi-tests/tests/wasitests/snapshot1_readlink.rs deleted file mode 100644 index 2b6c675b920..00000000000 --- a/lib/wasi-tests/tests/wasitests/snapshot1_readlink.rs +++ /dev/null @@ -1,18 +0,0 @@ -// !!! THIS IS A GENERATED FILE !!! -// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). - -#[test] -fn test_snapshot1_readlink() { - assert_wasi_output!( - "../../wasitests/snapshot1/readlink.wasm", - "snapshot1_readlink", - vec![], - vec![( - ".".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/hamlet") - ),], - vec![], - "../../wasitests/readlink.out" - ); -} diff --git a/lib/wasi-tests/tests/wasitests/snapshot1_wasi_sees_virtual_root.rs b/lib/wasi-tests/tests/wasitests/snapshot1_wasi_sees_virtual_root.rs deleted file mode 100644 index 626df39f93c..00000000000 --- a/lib/wasi-tests/tests/wasitests/snapshot1_wasi_sees_virtual_root.rs +++ /dev/null @@ -1,28 +0,0 @@ -// !!! THIS IS A GENERATED FILE !!! -// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). - -#[test] -fn test_snapshot1_wasi_sees_virtual_root() { - assert_wasi_output!( - "../../wasitests/snapshot1/wasi_sees_virtual_root.wasm", - "snapshot1_wasi_sees_virtual_root", - vec![], - vec![ - ( - "act1".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/hamlet/act1") - ), - ( - "act2".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/hamlet/act2") - ), - ( - "act1-again".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/hamlet/act1") - ), - ], - vec![], - "../../wasitests/wasi_sees_virtual_root.out" - ); -} diff --git a/lib/wasi-tests/tests/wasitests/snapshot1_writing.rs b/lib/wasi-tests/tests/wasitests/snapshot1_writing.rs deleted file mode 100644 index d48cc32edcc..00000000000 --- a/lib/wasi-tests/tests/wasitests/snapshot1_writing.rs +++ /dev/null @@ -1,28 +0,0 @@ -// !!! THIS IS A GENERATED FILE !!! -// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). - -#[test] -fn test_snapshot1_writing() { - assert_wasi_output!( - "../../wasitests/snapshot1/writing.wasm", - "snapshot1_writing", - vec![], - vec![ - ( - "act1".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/hamlet/act1") - ), - ( - "act2".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/hamlet/act2") - ), - ( - "act1-again".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/hamlet/act1") - ), - ], - vec![], - "../../wasitests/writing.out" - ); -} diff --git a/lib/wasi-tests/tests/wasitests/unstable_close_preopen_fd.rs b/lib/wasi-tests/tests/wasitests/unstable_close_preopen_fd.rs deleted file mode 100644 index 48f26dee8d1..00000000000 --- a/lib/wasi-tests/tests/wasitests/unstable_close_preopen_fd.rs +++ /dev/null @@ -1,18 +0,0 @@ -// !!! THIS IS A GENERATED FILE !!! -// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). - -#[test] -fn test_unstable_close_preopen_fd() { - assert_wasi_output!( - "../../wasitests/unstable/close_preopen_fd.wasm", - "unstable_close_preopen_fd", - vec![], - vec![( - "hamlet".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/hamlet") - ),], - vec![], - "../../wasitests/close_preopen_fd.out" - ); -} diff --git a/lib/wasi-tests/tests/wasitests/unstable_fd_allocate.rs b/lib/wasi-tests/tests/wasitests/unstable_fd_allocate.rs deleted file mode 100644 index b3904f35a66..00000000000 --- a/lib/wasi-tests/tests/wasitests/unstable_fd_allocate.rs +++ /dev/null @@ -1,18 +0,0 @@ -// !!! THIS IS A GENERATED FILE !!! -// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). - -#[test] -fn test_unstable_fd_allocate() { - assert_wasi_output!( - "../../wasitests/unstable/fd_allocate.wasm", - "unstable_fd_allocate", - vec![], - vec![( - ".".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/temp") - ),], - vec![], - "../../wasitests/fd_allocate.out" - ); -} diff --git a/lib/wasi-tests/tests/wasitests/unstable_fd_append.rs b/lib/wasi-tests/tests/wasitests/unstable_fd_append.rs deleted file mode 100644 index e23f9ec7b98..00000000000 --- a/lib/wasi-tests/tests/wasitests/unstable_fd_append.rs +++ /dev/null @@ -1,18 +0,0 @@ -// !!! THIS IS A GENERATED FILE !!! -// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). - -#[test] -fn test_unstable_fd_append() { - assert_wasi_output!( - "../../wasitests/unstable/fd_append.wasm", - "unstable_fd_append", - vec![], - vec![( - ".".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/temp") - ),], - vec![], - "../../wasitests/fd_append.out" - ); -} diff --git a/lib/wasi-tests/tests/wasitests/unstable_fd_close.rs b/lib/wasi-tests/tests/wasitests/unstable_fd_close.rs deleted file mode 100644 index b2e47e364b9..00000000000 --- a/lib/wasi-tests/tests/wasitests/unstable_fd_close.rs +++ /dev/null @@ -1,18 +0,0 @@ -// !!! THIS IS A GENERATED FILE !!! -// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). - -#[test] -fn test_unstable_fd_close() { - assert_wasi_output!( - "../../wasitests/unstable/fd_close.wasm", - "unstable_fd_close", - vec![], - vec![( - ".".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/hamlet") - ),], - vec![], - "../../wasitests/fd_close.out" - ); -} diff --git a/lib/wasi-tests/tests/wasitests/unstable_fd_pread.rs b/lib/wasi-tests/tests/wasitests/unstable_fd_pread.rs deleted file mode 100644 index 2661028ecd6..00000000000 --- a/lib/wasi-tests/tests/wasitests/unstable_fd_pread.rs +++ /dev/null @@ -1,18 +0,0 @@ -// !!! THIS IS A GENERATED FILE !!! -// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). - -#[test] -fn test_unstable_fd_pread() { - assert_wasi_output!( - "../../wasitests/unstable/fd_pread.wasm", - "unstable_fd_pread", - vec![], - vec![( - ".".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/hamlet") - ),], - vec![], - "../../wasitests/fd_pread.out" - ); -} diff --git a/lib/wasi-tests/tests/wasitests/unstable_fd_read.rs b/lib/wasi-tests/tests/wasitests/unstable_fd_read.rs deleted file mode 100644 index dc9e90a3bcb..00000000000 --- a/lib/wasi-tests/tests/wasitests/unstable_fd_read.rs +++ /dev/null @@ -1,18 +0,0 @@ -// !!! THIS IS A GENERATED FILE !!! -// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). - -#[test] -fn test_unstable_fd_read() { - assert_wasi_output!( - "../../wasitests/unstable/fd_read.wasm", - "unstable_fd_read", - vec![], - vec![( - ".".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/hamlet") - ),], - vec![], - "../../wasitests/fd_read.out" - ); -} diff --git a/lib/wasi-tests/tests/wasitests/unstable_fd_sync.rs b/lib/wasi-tests/tests/wasitests/unstable_fd_sync.rs deleted file mode 100644 index b8aca4143dc..00000000000 --- a/lib/wasi-tests/tests/wasitests/unstable_fd_sync.rs +++ /dev/null @@ -1,18 +0,0 @@ -// !!! THIS IS A GENERATED FILE !!! -// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). - -#[test] -fn test_unstable_fd_sync() { - assert_wasi_output!( - "../../wasitests/unstable/fd_sync.wasm", - "unstable_fd_sync", - vec![], - vec![( - ".".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/temp") - ),], - vec![], - "../../wasitests/fd_sync.out" - ); -} diff --git a/lib/wasi-tests/tests/wasitests/unstable_fseek.rs b/lib/wasi-tests/tests/wasitests/unstable_fseek.rs deleted file mode 100644 index f24185fc02b..00000000000 --- a/lib/wasi-tests/tests/wasitests/unstable_fseek.rs +++ /dev/null @@ -1,18 +0,0 @@ -// !!! THIS IS A GENERATED FILE !!! -// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). - -#[test] -fn test_unstable_fseek() { - assert_wasi_output!( - "../../wasitests/unstable/fseek.wasm", - "unstable_fseek", - vec![], - vec![( - ".".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/hamlet") - ),], - vec![], - "../../wasitests/fseek.out" - ); -} diff --git a/lib/wasi-tests/tests/wasitests/unstable_mapdir.rs b/lib/wasi-tests/tests/wasitests/unstable_mapdir.rs deleted file mode 100644 index 180e8799684..00000000000 --- a/lib/wasi-tests/tests/wasitests/unstable_mapdir.rs +++ /dev/null @@ -1,18 +0,0 @@ -// !!! THIS IS A GENERATED FILE !!! -// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). - -#[test] -fn test_unstable_mapdir() { - assert_wasi_output!( - "../../wasitests/unstable/mapdir.wasm", - "unstable_mapdir", - vec![], - vec![( - ".".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/hamlet") - ),], - vec![], - "../../wasitests/mapdir.out" - ); -} diff --git a/lib/wasi-tests/tests/wasitests/unstable_path_link.rs b/lib/wasi-tests/tests/wasitests/unstable_path_link.rs deleted file mode 100644 index 09d9762bc8f..00000000000 --- a/lib/wasi-tests/tests/wasitests/unstable_path_link.rs +++ /dev/null @@ -1,24 +0,0 @@ -// !!! THIS IS A GENERATED FILE !!! -// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). - -#[test] -fn test_unstable_path_link() { - assert_wasi_output!( - "../../wasitests/unstable/path_link.wasm", - "unstable_path_link", - vec![], - vec![ - ( - "act5".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/hamlet/act5") - ), - ( - "temp".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/temp") - ), - ], - vec![], - "../../wasitests/path_link.out" - ); -} diff --git a/lib/wasi-tests/tests/wasitests/unstable_path_rename.rs b/lib/wasi-tests/tests/wasitests/unstable_path_rename.rs deleted file mode 100644 index 83c5585645c..00000000000 --- a/lib/wasi-tests/tests/wasitests/unstable_path_rename.rs +++ /dev/null @@ -1,18 +0,0 @@ -// !!! THIS IS A GENERATED FILE !!! -// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). - -#[test] -fn test_unstable_path_rename() { - assert_wasi_output!( - "../../wasitests/unstable/path_rename.wasm", - "unstable_path_rename", - vec![], - vec![( - "temp".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/temp") - ),], - vec![], - "../../wasitests/path_rename.out" - ); -} diff --git a/lib/wasi-tests/tests/wasitests/unstable_path_symlink.rs b/lib/wasi-tests/tests/wasitests/unstable_path_symlink.rs deleted file mode 100644 index 8bed0426d5b..00000000000 --- a/lib/wasi-tests/tests/wasitests/unstable_path_symlink.rs +++ /dev/null @@ -1,24 +0,0 @@ -// !!! THIS IS A GENERATED FILE !!! -// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). - -#[test] -fn test_unstable_path_symlink() { - assert_wasi_output!( - "../../wasitests/unstable/path_symlink.wasm", - "unstable_path_symlink", - vec![], - vec![ - ( - "temp".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/temp") - ), - ( - "hamlet".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/hamlet") - ), - ], - vec![], - "../../wasitests/path_symlink.out" - ); -} diff --git a/lib/wasi-tests/tests/wasitests/unstable_poll_oneoff.rs b/lib/wasi-tests/tests/wasitests/unstable_poll_oneoff.rs deleted file mode 100644 index 8fc4b1ef3cf..00000000000 --- a/lib/wasi-tests/tests/wasitests/unstable_poll_oneoff.rs +++ /dev/null @@ -1,24 +0,0 @@ -// !!! THIS IS A GENERATED FILE !!! -// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). - -#[test] -fn test_unstable_poll_oneoff() { - assert_wasi_output!( - "../../wasitests/unstable/poll_oneoff.wasm", - "unstable_poll_oneoff", - vec![], - vec![ - ( - "hamlet".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/hamlet") - ), - ( - "temp".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/temp") - ), - ], - vec![], - "../../wasitests/poll_oneoff.out" - ); -} diff --git a/lib/wasi-tests/tests/wasitests/unstable_readlink.rs b/lib/wasi-tests/tests/wasitests/unstable_readlink.rs deleted file mode 100644 index 66c1e1aaf41..00000000000 --- a/lib/wasi-tests/tests/wasitests/unstable_readlink.rs +++ /dev/null @@ -1,18 +0,0 @@ -// !!! THIS IS A GENERATED FILE !!! -// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). - -#[test] -fn test_unstable_readlink() { - assert_wasi_output!( - "../../wasitests/unstable/readlink.wasm", - "unstable_readlink", - vec![], - vec![( - ".".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/hamlet") - ),], - vec![], - "../../wasitests/readlink.out" - ); -} diff --git a/lib/wasi-tests/tests/wasitests/unstable_wasi_sees_virtual_root.rs b/lib/wasi-tests/tests/wasitests/unstable_wasi_sees_virtual_root.rs deleted file mode 100644 index df929306ad0..00000000000 --- a/lib/wasi-tests/tests/wasitests/unstable_wasi_sees_virtual_root.rs +++ /dev/null @@ -1,28 +0,0 @@ -// !!! THIS IS A GENERATED FILE !!! -// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). - -#[test] -fn test_unstable_wasi_sees_virtual_root() { - assert_wasi_output!( - "../../wasitests/unstable/wasi_sees_virtual_root.wasm", - "unstable_wasi_sees_virtual_root", - vec![], - vec![ - ( - "act1".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/hamlet/act1") - ), - ( - "act2".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/hamlet/act2") - ), - ( - "act1-again".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/hamlet/act1") - ), - ], - vec![], - "../../wasitests/wasi_sees_virtual_root.out" - ); -} diff --git a/lib/wasi-tests/tests/wasitests/unstable_writing.rs b/lib/wasi-tests/tests/wasitests/unstable_writing.rs deleted file mode 100644 index d964b29ff53..00000000000 --- a/lib/wasi-tests/tests/wasitests/unstable_writing.rs +++ /dev/null @@ -1,28 +0,0 @@ -// !!! THIS IS A GENERATED FILE !!! -// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). - -#[test] -fn test_unstable_writing() { - assert_wasi_output!( - "../../wasitests/unstable/writing.wasm", - "unstable_writing", - vec![], - vec![ - ( - "act1".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/hamlet/act1") - ), - ( - "act2".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/hamlet/act2") - ), - ( - "act1-again".to_string(), - ::std::path::PathBuf::from("wasitests/test_fs/hamlet/act1") - ), - ], - vec![], - "../../wasitests/writing.out" - ); -} diff --git a/lib/runtime-core-tests/tests/exception_handling.rs b/tests/exception_handling.rs similarity index 87% rename from lib/runtime-core-tests/tests/exception_handling.rs rename to tests/exception_handling.rs index bf7a21a0492..4001183a2c7 100644 --- a/lib/runtime-core-tests/tests/exception_handling.rs +++ b/tests/exception_handling.rs @@ -1,5 +1,7 @@ +mod runtime_core_tests; + +use runtime_core_tests::{get_compiler, wat2wasm}; use wasmer_runtime_core::{compile_with, imports}; -use wasmer_runtime_core_tests::{get_compiler, wat2wasm}; #[test] fn exception_handling_works() { diff --git a/tests/generate-wasi-tests/Cargo.toml b/tests/generate-wasi-tests/Cargo.toml new file mode 100644 index 00000000000..2167e7c88e7 --- /dev/null +++ b/tests/generate-wasi-tests/Cargo.toml @@ -0,0 +1,21 @@ +[package] +name = "generate-wasi-tests" +version = "0.16.2" +description = "Tests for our WASI implementation" +license = "MIT" +authors = ["The Wasmer Engineering Team "] +edition = "2018" +publish = false + +[dependencies] +glob = "0.3" +tempfile = "3" +# We set default features to false to be able to use the singlepass backend properly + +#[dev-dependencies] +#wasmer-dev-utils = { path = "../../lib/dev-utils", version = "0.16.2"} + +#[features] +#clif = ["wasmer-clif-backend", "wasmer-runtime/default-backend-cranelift"] +#singlepass = ["wasmer-singlepass-backend", "wasmer-runtime/default-backend-singlepass"] +#llvm = ["wasmer-llvm-backend", "wasmer-runtime/default-backend-llvm"] diff --git a/lib/wasi-tests/build/mod.rs b/tests/generate-wasi-tests/src/lib.rs similarity index 52% rename from lib/wasi-tests/build/mod.rs rename to tests/generate-wasi-tests/src/lib.rs index d7ad095fba9..3ee64ada56f 100644 --- a/lib/wasi-tests/build/mod.rs +++ b/tests/generate-wasi-tests/src/lib.rs @@ -1,14 +1,19 @@ use std::env; -mod set_up_toolchain; -mod util; -mod wasi_version; -mod wasitests; +pub mod set_up_toolchain; +pub mod util; +pub mod wasi_version; +pub mod wasitests; static WASITESTS_ENV_VAR: &str = "WASM_WASI_GENERATE_WASITESTS"; static WASITESTS_SET_UP_TOOLCHAIN: &str = "WASM_WASI_SET_UP_TOOLCHAIN"; +static WASITESTS_GENERATE_ALL: &str = "WASI_TEST_GENERATE_ALL"; -fn main() { +pub fn build() { + //println!("cargo:rerun-if-changed=tests/wasi_test_resources/*.rs"); + println!("cargo:rerun-if-env-changed={}", WASITESTS_ENV_VAR); + println!("cargo:rerun-if-env-changed={}", WASITESTS_SET_UP_TOOLCHAIN); + println!("cargo:rerun-if-env-changed={}", WASITESTS_GENERATE_ALL); let do_all_wasi_tests = util::should_operate_on_all_wasi_tests(); if env::var(WASITESTS_SET_UP_TOOLCHAIN).unwrap_or("0".to_string()) == "1" { set_up_toolchain::set_it_up(do_all_wasi_tests); diff --git a/lib/wasi-tests/build/set_up_toolchain.rs b/tests/generate-wasi-tests/src/set_up_toolchain.rs similarity index 95% rename from lib/wasi-tests/build/set_up_toolchain.rs rename to tests/generate-wasi-tests/src/set_up_toolchain.rs index 6add53c70dd..80cf884476e 100644 --- a/lib/wasi-tests/build/set_up_toolchain.rs +++ b/tests/generate-wasi-tests/src/set_up_toolchain.rs @@ -1,5 +1,5 @@ -use crate::util; -use crate::wasi_version::*; +use super::util; +use super::wasi_version::*; use std::process::Command; diff --git a/lib/wasi-tests/build/util.rs b/tests/generate-wasi-tests/src/util.rs similarity index 100% rename from lib/wasi-tests/build/util.rs rename to tests/generate-wasi-tests/src/util.rs diff --git a/lib/wasi-tests/build/wasi_version.rs b/tests/generate-wasi-tests/src/wasi_version.rs similarity index 100% rename from lib/wasi-tests/build/wasi_version.rs rename to tests/generate-wasi-tests/src/wasi_version.rs diff --git a/lib/wasi-tests/build/wasitests.rs b/tests/generate-wasi-tests/src/wasitests.rs similarity index 87% rename from lib/wasi-tests/build/wasitests.rs rename to tests/generate-wasi-tests/src/wasitests.rs index c4d3ecb03cd..10caae9e0ea 100644 --- a/lib/wasi-tests/build/wasitests.rs +++ b/tests/generate-wasi-tests/src/wasitests.rs @@ -15,12 +15,12 @@ use std::fs::File; use std::io::prelude::*; use std::io::{self, BufReader}; -use crate::util; -use crate::wasi_version::*; +use super::util; +use super::wasi_version::*; static BANNER: &str = "// !!! THIS IS A GENERATED FILE !!! // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs).\n"; +// Files autogenerated with cargo build.\n"; /// Compile and execute the test file as native code, saving the results to be /// compared against later. @@ -56,12 +56,19 @@ fn generate_native_output(temp_dir: &Path, file: &str, normalized_name: &str) -> fs::set_permissions(&executable_path, perm)?; } + println!( + "Executing native program at {}", + executable_path.to_string_lossy() + ); + // workspace root + const EXECUTE_DIR: &str = concat!(env!("CARGO_MANIFEST_DIR"), "/../.."); let result = Command::new(&executable_path) + .current_dir(EXECUTE_DIR) .output() .expect("Failed to execute native program"); util::print_info_on_error(&result, "NATIVE PROGRAM FAILED"); - let mut output_path = executable_path.clone(); + let mut output_path = PathBuf::from(file); output_path.set_extension("out"); println!("Writing output to {}", output_path.to_string_lossy()); @@ -207,26 +214,26 @@ fn generate_test_file( #[test]{ignore} fn test_{test_name}() {{ assert_wasi_output!( - \"../../{module_path}\", + \"{module_path}\", \"{test_name}\", {dir_args}, {mapdir_args}, {envvar_args}, - \"../../{test_output_path}\" + \"{test_output_path}\" ); }} ", banner = BANNER, ignore = ignored, - module_path = wasm_out_name, + module_path = format!("../wasi_test_resources/{}.wasm", wasm_out_name), test_name = &test_name, - test_output_path = format!("wasitests/{}.out", rs_module_name), + test_output_path = format!("../wasi_test_resources/{}.out", rs_module_name), dir_args = dir_args, mapdir_args = mapdir_args, envvar_args = envvar_args ); let rust_test_filepath = format!( - concat!(env!("CARGO_MANIFEST_DIR"), "/tests/wasitests/{}.rs"), + concat!(env!("CARGO_MANIFEST_DIR"), "/../wasitests/{}.rs"), &test_name, ); fs::write(&rust_test_filepath, contents.as_bytes())?; @@ -252,18 +259,21 @@ fn compile( }; let base_dir = Path::new(file).parent().unwrap(); generate_native_output(temp_dir, &file, &rs_mod_name).expect("Generate native output"); - let mut out = vec![]; - - for &version in wasi_versions { - let wasm_out_path = compile_wasm_for_version(temp_dir, file, base_dir, &rs_mod_name, version) - .expect(&format!("Could not compile Wasm to WASI version {:?}, perhaps you need to install the `{}` rust toolchain", version, version.get_compiler_toolchain())); - let wasm_out_name = wasm_out_path.to_string_lossy(); - let test_mod = generate_test_file(file, &rs_mod_name, &wasm_out_name, version, ignores) - .expect(&format!("generate test file {}", &rs_mod_name)); - out.push(test_mod); - } - out + wasi_versions + .into_iter() + .map(|&version| { + compile_wasm_for_version(temp_dir, file, base_dir, &rs_mod_name, version) + .expect(&format!("Could not compile Wasm to WASI version {:?}, perhaps you need to install the `{}` rust toolchain", version, version.get_compiler_toolchain())); + let wasm_out_relative_path = { + let base_path = PathBuf::from(version.get_directory_name()); + base_path.join(&rs_mod_name) + }; + let wasm_out_name = wasm_out_relative_path.to_string_lossy(); + + generate_test_file(file, &rs_mod_name, &wasm_out_name, version, ignores) + .expect(&format!("generate test file {}", &rs_mod_name)) + }).collect::>() } fn run_prelude(should_gen_all: bool) -> &'static [WasiVersion] { @@ -284,15 +294,16 @@ fn run_prelude(should_gen_all: bool) -> &'static [WasiVersion] { } } +const WASI_TEST_SRC_DIR: &str = concat!(env!("CARGO_MANIFEST_DIR"), "/../wasi_test_resources/*.rs"); pub fn build(should_gen_all: bool) { - let rust_test_modpath = concat!(env!("CARGO_MANIFEST_DIR"), "/tests/wasitests/mod.rs"); + let rust_test_modpath = concat!(env!("CARGO_MANIFEST_DIR"), "/../wasitests/mod.rs"); let mut modules: Vec = Vec::new(); let wasi_versions = run_prelude(should_gen_all); let temp_dir = tempfile::TempDir::new().unwrap(); let ignores = read_ignore_list(); - for entry in glob("wasitests/*.rs").unwrap() { + for entry in glob(WASI_TEST_SRC_DIR).unwrap() { match entry { Ok(path) => { let test = path.to_str().unwrap(); @@ -333,8 +344,12 @@ pub fn build(should_gen_all: bool) { } } +const IGNORE_LIST_PATH: &str = concat!( + env!("CARGO_MANIFEST_DIR"), + "/../wasi_test_resources/ignores.txt" +); fn read_ignore_list() -> HashSet { - let f = File::open("wasitests/ignores.txt").unwrap(); + let f = File::open(IGNORE_LIST_PATH).unwrap(); let f = BufReader::new(f); f.lines() .filter_map(Result::ok) diff --git a/lib/api-tests/tests/high_level_api.rs b/tests/high_level_api.rs similarity index 100% rename from lib/api-tests/tests/high_level_api.rs rename to tests/high_level_api.rs diff --git a/lib/runtime-core-tests/tests/imports.rs b/tests/imports.rs similarity index 99% rename from lib/runtime-core-tests/tests/imports.rs rename to tests/imports.rs index ca9c0cdb907..7903d433f0f 100644 --- a/lib/runtime-core-tests/tests/imports.rs +++ b/tests/imports.rs @@ -1,3 +1,6 @@ +mod runtime_core_tests; + +use runtime_core_tests::{get_compiler, wat2wasm}; use std::{convert::TryInto, sync::Arc}; use wasmer_runtime_core::{ compile_with, @@ -10,7 +13,6 @@ use wasmer_runtime_core::{ units::Pages, vm, DynFunc, Instance, }; -use wasmer_runtime_core_tests::{get_compiler, wat2wasm}; #[test] fn new_api_works() { diff --git a/lib/llvm-backend-tests/tests/compile.rs b/tests/llvm_compile.rs similarity index 84% rename from lib/llvm-backend-tests/tests/compile.rs rename to tests/llvm_compile.rs index 11655095b20..8477d0fa4b1 100644 --- a/lib/llvm-backend-tests/tests/compile.rs +++ b/tests/llvm_compile.rs @@ -1,5 +1,23 @@ +#![cfg(all(feature = "backend-llvm", test))] +#![deny( + dead_code, + nonstandard_style, + unused_imports, + unused_mut, + unused_variables, + unused_unsafe, + unreachable_patterns +)] + +use wabt::wat2wasm; +use wasmer_llvm_backend::LLVMCompiler; +use wasmer_runtime_core::backend::Compiler; + +pub fn get_compiler() -> impl Compiler { + LLVMCompiler::new() +} + use wasmer_llvm_backend::{InkwellModule, LLVMBackendConfig, LLVMCallbacks}; -use wasmer_llvm_backend_tests::{get_compiler, wat2wasm}; use wasmer_runtime::{imports, CompilerConfig}; use wasmer_runtime_core::{backend::BackendCompilerConfig, compile_with, compile_with_config}; diff --git a/lib/middleware-common-tests/src/lib.rs b/tests/middleware_common.rs similarity index 94% rename from lib/middleware-common-tests/src/lib.rs rename to tests/middleware_common.rs index 70b373f4dd5..d5e20a1b963 100644 --- a/lib/middleware-common-tests/src/lib.rs +++ b/tests/middleware_common.rs @@ -1,4 +1,4 @@ -#[cfg(all(test, any(feature = "singlepass", feature = "llvm")))] +#[cfg(all(test, any(feature = "backend-singlepass", feature = "backend-llvm")))] mod tests { use wabt::wat2wasm; @@ -9,13 +9,13 @@ mod tests { use wasmer_runtime_core::state::CodeVersion; use wasmer_runtime_core::{backend::Compiler, compile_with, imports, Func}; - #[cfg(feature = "llvm")] + #[cfg(feature = "backend-llvm")] use wasmer_llvm_backend::ModuleCodeGenerator as MCG; - #[cfg(feature = "singlepass")] + #[cfg(feature = "backend-singlepass")] use wasmer_singlepass_backend::ModuleCodeGenerator as MCG; - #[cfg(feature = "clif")] + #[cfg(feature = "backend-cranelift")] compile_error!("cranelift does not implement metering yet"); fn get_compiler(limit: u64) -> impl Compiler { @@ -27,7 +27,11 @@ mod tests { c } - #[cfg(not(any(feature = "llvm", feature = "clif", feature = "singlepass")))] + #[cfg(not(any( + feature = "backend-llvm", + feature = "backend-cranelift", + feature = "backend-singlepass" + )))] compile_error!("compiler not specified, activate a compiler via features"); // Assemblyscript diff --git a/lib/runtime-core-tests/src/lib.rs b/tests/runtime_core_tests/mod.rs similarity index 100% rename from lib/runtime-core-tests/src/lib.rs rename to tests/runtime_core_tests/mod.rs diff --git a/lib/wasi-tests/src/lib.rs b/tests/wasi_serialization.rs similarity index 90% rename from lib/wasi-tests/src/lib.rs rename to tests/wasi_serialization.rs index 447cd40fc6d..8d42cc7364f 100644 --- a/lib/wasi-tests/src/lib.rs +++ b/tests/wasi_serialization.rs @@ -4,6 +4,8 @@ use wasmer_wasi::{state::*, *}; use std::ffi::c_void; +// TODO: fix this test! +#[ignore] #[cfg(not(feature = "singlepass"))] #[test] fn serializing_works() { @@ -15,7 +17,7 @@ fn serializing_works() { b"PATH=/bin".into_iter().cloned().collect(), b"GOROOT=$HOME/.cargo/bin".into_iter().cloned().collect(), ]; - let wasm_binary = include_bytes!("../wasitests/unstable/fd_read.wasm"); + let wasm_binary = include_bytes!("wasi_test_resources/unstable/fd_read.wasm"); let module = compile(&wasm_binary[..]) .map_err(|e| format!("Can't compile module: {:?}", e)) .unwrap(); @@ -28,7 +30,7 @@ fn serializing_works() { vec![], vec![( ".".to_string(), - std::path::PathBuf::from("wasitests/test_fs/hamlet"), + std::path::PathBuf::from("wasi_test_resources/test_fs/hamlet"), )], ); diff --git a/lib/wasi-tests/wasitests/close_preopen_fd.out b/tests/wasi_test_resources/close_preopen_fd.out similarity index 100% rename from lib/wasi-tests/wasitests/close_preopen_fd.out rename to tests/wasi_test_resources/close_preopen_fd.out diff --git a/lib/wasi-tests/wasitests/close_preopen_fd.rs b/tests/wasi_test_resources/close_preopen_fd.rs similarity index 95% rename from lib/wasi-tests/wasitests/close_preopen_fd.rs rename to tests/wasi_test_resources/close_preopen_fd.rs index ba0a875617d..025c355fab7 100644 --- a/lib/wasi-tests/wasitests/close_preopen_fd.rs +++ b/tests/wasi_test_resources/close_preopen_fd.rs @@ -1,5 +1,5 @@ // Args: -// mapdir: hamlet:wasitests/test_fs/hamlet +// mapdir: hamlet:tests/wasi_test_resources/test_fs/hamlet use std::fs; use std::path::PathBuf; diff --git a/lib/wasi-tests/wasitests/create_dir.out b/tests/wasi_test_resources/create_dir.out similarity index 100% rename from lib/wasi-tests/wasitests/create_dir.out rename to tests/wasi_test_resources/create_dir.out diff --git a/lib/wasi-tests/wasitests/create_dir.rs b/tests/wasi_test_resources/create_dir.rs similarity index 100% rename from lib/wasi-tests/wasitests/create_dir.rs rename to tests/wasi_test_resources/create_dir.rs diff --git a/lib/wasi-tests/wasitests/envvar.out b/tests/wasi_test_resources/envvar.out similarity index 100% rename from lib/wasi-tests/wasitests/envvar.out rename to tests/wasi_test_resources/envvar.out diff --git a/lib/wasi-tests/wasitests/envvar.rs b/tests/wasi_test_resources/envvar.rs similarity index 100% rename from lib/wasi-tests/wasitests/envvar.rs rename to tests/wasi_test_resources/envvar.rs diff --git a/lib/wasi-tests/wasitests/fd_allocate.out b/tests/wasi_test_resources/fd_allocate.out similarity index 100% rename from lib/wasi-tests/wasitests/fd_allocate.out rename to tests/wasi_test_resources/fd_allocate.out diff --git a/lib/wasi-tests/wasitests/fd_allocate.rs b/tests/wasi_test_resources/fd_allocate.rs similarity index 97% rename from lib/wasi-tests/wasitests/fd_allocate.rs rename to tests/wasi_test_resources/fd_allocate.rs index e7bc1c6310e..75118502a73 100644 --- a/lib/wasi-tests/wasitests/fd_allocate.rs +++ b/tests/wasi_test_resources/fd_allocate.rs @@ -1,5 +1,5 @@ // Args: -// mapdir: .:wasitests/test_fs/temp +// mapdir: .:tests/wasi_test_resources/test_fs/temp use std::fs; #[cfg(target_os = "wasi")] diff --git a/lib/wasi-tests/wasitests/fd_append.out b/tests/wasi_test_resources/fd_append.out similarity index 100% rename from lib/wasi-tests/wasitests/fd_append.out rename to tests/wasi_test_resources/fd_append.out diff --git a/lib/wasi-tests/wasitests/fd_append.rs b/tests/wasi_test_resources/fd_append.rs similarity index 90% rename from lib/wasi-tests/wasitests/fd_append.rs rename to tests/wasi_test_resources/fd_append.rs index 2e311652e4d..5cf2634c15c 100644 --- a/lib/wasi-tests/wasitests/fd_append.rs +++ b/tests/wasi_test_resources/fd_append.rs @@ -1,5 +1,5 @@ // Args: -// mapdir: .:wasitests/test_fs/temp +// mapdir: .:tests/wasi_test_resources/test_fs/temp use std::fs::OpenOptions; use std::io::{Read, Write}; @@ -11,7 +11,7 @@ static STR2: &str = "Goodbye, world!\n"; fn main() { let file = { #[cfg(not(target_os = "wasi"))] - let mut base = PathBuf::from("wasitests/test_fs/temp"); + let mut base = PathBuf::from("tests/wasi_test_resources/test_fs/temp"); #[cfg(target_os = "wasi")] let mut base = PathBuf::from("."); diff --git a/lib/wasi-tests/wasitests/fd_close.out b/tests/wasi_test_resources/fd_close.out similarity index 100% rename from lib/wasi-tests/wasitests/fd_close.out rename to tests/wasi_test_resources/fd_close.out diff --git a/lib/wasi-tests/wasitests/fd_close.rs b/tests/wasi_test_resources/fd_close.rs similarity index 92% rename from lib/wasi-tests/wasitests/fd_close.rs rename to tests/wasi_test_resources/fd_close.rs index e5cdaafd97b..2004ebaa2d6 100644 --- a/lib/wasi-tests/wasitests/fd_close.rs +++ b/tests/wasi_test_resources/fd_close.rs @@ -1,5 +1,5 @@ // Args: -// mapdir: .:wasitests/test_fs/hamlet +// mapdir: .:tests/wasi_test_resources/test_fs/hamlet use std::fs; #[cfg(target_os = "wasi")] @@ -14,7 +14,7 @@ extern "C" { fn main() { #[cfg(not(target_os = "wasi"))] - let mut base = PathBuf::from("wasitests/test_fs/hamlet"); + let mut base = PathBuf::from("tests/wasi_test_resources/test_fs/hamlet"); #[cfg(target_os = "wasi")] let mut base = PathBuf::from("."); diff --git a/lib/wasi-tests/wasitests/fd_pread.out b/tests/wasi_test_resources/fd_pread.out similarity index 100% rename from lib/wasi-tests/wasitests/fd_pread.out rename to tests/wasi_test_resources/fd_pread.out diff --git a/lib/wasi-tests/wasitests/fd_pread.rs b/tests/wasi_test_resources/fd_pread.rs similarity index 93% rename from lib/wasi-tests/wasitests/fd_pread.rs rename to tests/wasi_test_resources/fd_pread.rs index 72addfdfec0..e0dc0c6d4ef 100644 --- a/lib/wasi-tests/wasitests/fd_pread.rs +++ b/tests/wasi_test_resources/fd_pread.rs @@ -1,5 +1,5 @@ // Args: -// mapdir: .:wasitests/test_fs/hamlet +// mapdir: .:tests/wasi_test_resources/test_fs/hamlet use std::fs; #[cfg(target_os = "wasi")] @@ -45,7 +45,7 @@ fn pread(fd: u32, iovs: &[&mut [u8]], offset: u64) -> u32 { fn main() { #[cfg(not(target_os = "wasi"))] - let mut base = PathBuf::from("wasitests/test_fs/hamlet"); + let mut base = PathBuf::from("tests/wasi_test_resources/test_fs/hamlet"); #[cfg(target_os = "wasi")] let mut base = PathBuf::from("."); diff --git a/lib/wasi-tests/wasitests/fd_read.out b/tests/wasi_test_resources/fd_read.out similarity index 100% rename from lib/wasi-tests/wasitests/fd_read.out rename to tests/wasi_test_resources/fd_read.out diff --git a/lib/wasi-tests/wasitests/fd_read.rs b/tests/wasi_test_resources/fd_read.rs similarity index 93% rename from lib/wasi-tests/wasitests/fd_read.rs rename to tests/wasi_test_resources/fd_read.rs index c0a229f8562..ac8e263dbc2 100644 --- a/lib/wasi-tests/wasitests/fd_read.rs +++ b/tests/wasi_test_resources/fd_read.rs @@ -1,5 +1,5 @@ // Args: -// mapdir: .:wasitests/test_fs/hamlet +// mapdir: .:tests/wasi_test_resources/test_fs/hamlet // this program is used in the pause/resume test @@ -46,7 +46,7 @@ fn read(fd: u32, iovs: &[&mut [u8]]) -> u32 { fn main() { #[cfg(not(target_os = "wasi"))] - let mut base = PathBuf::from("wasitests/test_fs/hamlet"); + let mut base = PathBuf::from("tests/wasi_test_resources/test_fs/hamlet"); #[cfg(target_os = "wasi")] let mut base = PathBuf::from("."); diff --git a/lib/wasi-tests/wasitests/fd_sync.out b/tests/wasi_test_resources/fd_sync.out similarity index 100% rename from lib/wasi-tests/wasitests/fd_sync.out rename to tests/wasi_test_resources/fd_sync.out diff --git a/lib/wasi-tests/wasitests/fd_sync.rs b/tests/wasi_test_resources/fd_sync.rs similarity index 96% rename from lib/wasi-tests/wasitests/fd_sync.rs rename to tests/wasi_test_resources/fd_sync.rs index 58be96ef5db..31489d9cf9a 100644 --- a/lib/wasi-tests/wasitests/fd_sync.rs +++ b/tests/wasi_test_resources/fd_sync.rs @@ -1,5 +1,5 @@ // Args: -// mapdir: .:wasitests/test_fs/temp +// mapdir: .:tests/wasi_test_resources/test_fs/temp use std::fs; use std::path::PathBuf; diff --git a/lib/wasi-tests/wasitests/file_metadata.out b/tests/wasi_test_resources/file_metadata.out similarity index 73% rename from lib/wasi-tests/wasitests/file_metadata.out rename to tests/wasi_test_resources/file_metadata.out index faa15dc2901..974bc1ff5a6 100644 --- a/lib/wasi-tests/wasitests/file_metadata.out +++ b/tests/wasi_test_resources/file_metadata.out @@ -1,3 +1,3 @@ is dir: false filetype: false true false -file info: 476 +file info: 493 diff --git a/lib/wasi-tests/wasitests/file_metadata.rs b/tests/wasi_test_resources/file_metadata.rs similarity index 73% rename from lib/wasi-tests/wasitests/file_metadata.rs rename to tests/wasi_test_resources/file_metadata.rs index 67c3999ccba..9ae25534eb3 100644 --- a/lib/wasi-tests/wasitests/file_metadata.rs +++ b/tests/wasi_test_resources/file_metadata.rs @@ -5,8 +5,8 @@ use std::fs; use std::io::Read; fn main() { - let mut this_file = - fs::File::open("wasitests/file_metadata.rs").expect("could not find src file"); + let mut this_file = fs::File::open("tests/wasi_test_resources/file_metadata.rs") + .expect("could not find src file"); let md = this_file.metadata().unwrap(); println!("is dir: {}", md.is_dir()); let filetype = md.file_type(); diff --git a/lib/wasi-tests/wasitests/fs_sandbox_test.out b/tests/wasi_test_resources/fs_sandbox_test.out similarity index 100% rename from lib/wasi-tests/wasitests/fs_sandbox_test.out rename to tests/wasi_test_resources/fs_sandbox_test.out diff --git a/lib/wasi-tests/wasitests/fs_sandbox_test.rs b/tests/wasi_test_resources/fs_sandbox_test.rs similarity index 100% rename from lib/wasi-tests/wasitests/fs_sandbox_test.rs rename to tests/wasi_test_resources/fs_sandbox_test.rs diff --git a/lib/wasi-tests/wasitests/fseek.out b/tests/wasi_test_resources/fseek.out similarity index 100% rename from lib/wasi-tests/wasitests/fseek.out rename to tests/wasi_test_resources/fseek.out diff --git a/lib/wasi-tests/wasitests/fseek.rs b/tests/wasi_test_resources/fseek.rs similarity index 91% rename from lib/wasi-tests/wasitests/fseek.rs rename to tests/wasi_test_resources/fseek.rs index 9b9e9f65e1c..571edd3c832 100644 --- a/lib/wasi-tests/wasitests/fseek.rs +++ b/tests/wasi_test_resources/fseek.rs @@ -1,5 +1,5 @@ // Args: -// mapdir: .:wasitests/test_fs/hamlet +// mapdir: .:tests/wasi_test_resources/test_fs/hamlet use std::fs; use std::io::{Read, Seek, SeekFrom}; @@ -7,7 +7,7 @@ use std::path::PathBuf; fn main() { #[cfg(not(target_os = "wasi"))] - let mut base = PathBuf::from("wasitests/test_fs/hamlet"); + let mut base = PathBuf::from("tests/wasi_test_resources/test_fs/hamlet"); #[cfg(target_os = "wasi")] let mut base = PathBuf::from("."); diff --git a/lib/wasi-tests/wasitests/hello.out b/tests/wasi_test_resources/hello.out similarity index 100% rename from lib/wasi-tests/wasitests/hello.out rename to tests/wasi_test_resources/hello.out diff --git a/lib/wasi-tests/wasitests/hello.rs b/tests/wasi_test_resources/hello.rs similarity index 100% rename from lib/wasi-tests/wasitests/hello.rs rename to tests/wasi_test_resources/hello.rs diff --git a/lib/wasi-tests/wasitests/ignores.txt b/tests/wasi_test_resources/ignores.txt similarity index 100% rename from lib/wasi-tests/wasitests/ignores.txt rename to tests/wasi_test_resources/ignores.txt diff --git a/lib/wasi-tests/wasitests/isatty.out b/tests/wasi_test_resources/isatty.out similarity index 100% rename from lib/wasi-tests/wasitests/isatty.out rename to tests/wasi_test_resources/isatty.out diff --git a/lib/wasi-tests/wasitests/isatty.rs b/tests/wasi_test_resources/isatty.rs similarity index 100% rename from lib/wasi-tests/wasitests/isatty.rs rename to tests/wasi_test_resources/isatty.rs diff --git a/lib/wasi-tests/wasitests/mapdir.out b/tests/wasi_test_resources/mapdir.out similarity index 100% rename from lib/wasi-tests/wasitests/mapdir.out rename to tests/wasi_test_resources/mapdir.out diff --git a/lib/wasi-tests/wasitests/mapdir.rs b/tests/wasi_test_resources/mapdir.rs similarity index 69% rename from lib/wasi-tests/wasitests/mapdir.rs rename to tests/wasi_test_resources/mapdir.rs index bdf7a774bb0..d58a2b332ad 100644 --- a/lib/wasi-tests/wasitests/mapdir.rs +++ b/tests/wasi_test_resources/mapdir.rs @@ -1,11 +1,11 @@ // Args: -// mapdir: .:wasitests/test_fs/hamlet +// mapdir: .:tests/wasi_test_resources/test_fs/hamlet use std::fs; fn main() { #[cfg(not(target_os = "wasi"))] - std::env::set_current_dir("wasitests/test_fs/hamlet").unwrap(); + std::env::set_current_dir("tests/wasi_test_resources/test_fs/hamlet").unwrap(); let read_dir = fs::read_dir(".").unwrap(); let mut out = vec![]; diff --git a/lib/wasi-tests/wasitests/path_link.out b/tests/wasi_test_resources/path_link.out similarity index 100% rename from lib/wasi-tests/wasitests/path_link.out rename to tests/wasi_test_resources/path_link.out diff --git a/lib/wasi-tests/wasitests/path_link.rs b/tests/wasi_test_resources/path_link.rs similarity index 92% rename from lib/wasi-tests/wasitests/path_link.rs rename to tests/wasi_test_resources/path_link.rs index 2b9aa534e89..7672a0511e6 100644 --- a/lib/wasi-tests/wasitests/path_link.rs +++ b/tests/wasi_test_resources/path_link.rs @@ -1,6 +1,6 @@ // Args: -// mapdir: act5:wasitests/test_fs/hamlet/act5 -// mapdir: temp:wasitests/test_fs/temp +// mapdir: act5:tests/wasi_test_resources/test_fs/hamlet/act5 +// mapdir: temp:tests/wasi_test_resources/test_fs/temp use std::fs; use std::io::Read; diff --git a/lib/wasi-tests/wasitests/path_rename.out b/tests/wasi_test_resources/path_rename.out similarity index 100% rename from lib/wasi-tests/wasitests/path_rename.out rename to tests/wasi_test_resources/path_rename.out diff --git a/lib/wasi-tests/wasitests/path_rename.rs b/tests/wasi_test_resources/path_rename.rs similarity index 93% rename from lib/wasi-tests/wasitests/path_rename.rs rename to tests/wasi_test_resources/path_rename.rs index f60eff106c8..29fb88b938e 100644 --- a/lib/wasi-tests/wasitests/path_rename.rs +++ b/tests/wasi_test_resources/path_rename.rs @@ -1,5 +1,5 @@ // Args: -// mapdir: temp:wasitests/test_fs/temp +// mapdir: temp:tests/wasi_test_resources/test_fs/temp use std::fs; use std::io::{Read, Write}; @@ -7,7 +7,7 @@ use std::path::PathBuf; fn main() { #[cfg(not(target_os = "wasi"))] - let mut base = PathBuf::from("wasitests/test_fs"); + let mut base = PathBuf::from("tests/wasi_test_resources/test_fs"); #[cfg(target_os = "wasi")] let mut base = PathBuf::from("/"); diff --git a/lib/wasi-tests/wasitests/path_symlink.out b/tests/wasi_test_resources/path_symlink.out similarity index 100% rename from lib/wasi-tests/wasitests/path_symlink.out rename to tests/wasi_test_resources/path_symlink.out diff --git a/lib/wasi-tests/wasitests/path_symlink.rs b/tests/wasi_test_resources/path_symlink.rs similarity index 79% rename from lib/wasi-tests/wasitests/path_symlink.rs rename to tests/wasi_test_resources/path_symlink.rs index 2c5a71c8550..e06b4d16c44 100644 --- a/lib/wasi-tests/wasitests/path_symlink.rs +++ b/tests/wasi_test_resources/path_symlink.rs @@ -1,6 +1,6 @@ // Args: -// mapdir: temp:wasitests/test_fs/temp -// mapdir: hamlet:wasitests/test_fs/hamlet +// mapdir: temp:tests/wasi_test_resources/test_fs/temp +// mapdir: hamlet:tests/wasi_test_resources/test_fs/hamlet use std::fs; use std::io::{Read, Seek, SeekFrom}; @@ -8,7 +8,7 @@ use std::path::PathBuf; fn main() { #[cfg(not(target_os = "wasi"))] - let mut base = PathBuf::from("wasitests/test_fs"); + let mut base = PathBuf::from("tests/wasi_test_resources/test_fs"); #[cfg(target_os = "wasi")] let mut base = PathBuf::from("/"); diff --git a/lib/wasi-tests/wasitests/poll_oneoff.out b/tests/wasi_test_resources/poll_oneoff.out similarity index 100% rename from lib/wasi-tests/wasitests/poll_oneoff.out rename to tests/wasi_test_resources/poll_oneoff.out diff --git a/lib/wasi-tests/wasitests/poll_oneoff.rs b/tests/wasi_test_resources/poll_oneoff.rs similarity index 97% rename from lib/wasi-tests/wasitests/poll_oneoff.rs rename to tests/wasi_test_resources/poll_oneoff.rs index 6170e5fb576..177ff19aeda 100644 --- a/lib/wasi-tests/wasitests/poll_oneoff.rs +++ b/tests/wasi_test_resources/poll_oneoff.rs @@ -1,6 +1,6 @@ // Args: -// mapdir: hamlet:wasitests/test_fs/hamlet -// mapdir: temp:wasitests/test_fs/temp +// mapdir: hamlet:tests/wasi_test_resources/test_fs/hamlet +// mapdir: temp:tests/wasi_test_resources/test_fs/temp use std::fs; use std::io::{Read, Seek, SeekFrom}; @@ -139,7 +139,7 @@ fn poll(fds: &[u32], read: &[bool], write: &[bool]) -> Result`a65vhBa+8T<4Ac^e6Q delta 24 fcmeC2%i1}YwP6e6S9!L?;$RDlr0u`u8T<4AcGC$h diff --git a/lib/wasi-tests/wasitests/snapshot1/envvar.wasm b/tests/wasi_test_resources/snapshot1/envvar.wasm similarity index 100% rename from lib/wasi-tests/wasitests/snapshot1/envvar.wasm rename to tests/wasi_test_resources/snapshot1/envvar.wasm diff --git a/lib/wasi-tests/wasitests/snapshot1/fd_allocate.wasm b/tests/wasi_test_resources/snapshot1/fd_allocate.wasm similarity index 99% rename from lib/wasi-tests/wasitests/snapshot1/fd_allocate.wasm rename to tests/wasi_test_resources/snapshot1/fd_allocate.wasm index 88ab0fcde932396e0b3abe691ee48f9ef4915bfa..f11f70f3eddb2d6bcc690d832e1aed4001b1dc03 100755 GIT binary patch delta 21 dcmdnBj%C+6mJO?4v4v-68kCo9-uS9h2LN+X3U2@a delta 21 dcmdnBj%C+6mJO?4u_YDp1mJPg5*ut|j4a&p1mJPg5*b<9_Ei95Y3qJ|f1psQh2TUaD*zVX^m2LN#H3K0MR diff --git a/lib/wasi-tests/wasitests/snapshot1/file_metadata.wasm b/tests/wasi_test_resources/snapshot1/file_metadata.wasm similarity index 59% rename from lib/wasi-tests/wasitests/snapshot1/file_metadata.wasm rename to tests/wasi_test_resources/snapshot1/file_metadata.wasm index c9d58dd75b14a3fc1a27f045d868b9132bc636c5..9efe732ab7cd4c79665b5a0cb54ac03333466aea 100755 GIT binary patch delta 8747 zcma)C3tW`N+JEQW3yTZ5c;l+PyDEZ+m?)Z81}}KYYm`U2=cVInVL)mpPoQF<(h(U8 zGA~qAYLw`bQetjprbdb#EjntDm+w$n+R=_=WZ(apcXwUQbH0z?&v)i|=9!u2KF`cr z`I52rC1cekHL&uGTe0RTywcUG2C8b|5)oi}iB*VKO^>j8VKt9p=fo8AWY*L5ig^lS zm9EPHtI>#pz{-28pK~i*wSB`hmD`+rCxJ%vgPgn;eVZEtni{7D*&Z0A#PB-rc#M-* zc*nWs)JbOWdKwSFe9g%lL{XbQ*m_T!@ZP?8*yH?*a@|NQtfZ(mowx}|Zqk`(6$Wc; z$4zo8+iBvAHX!yY#4zidc}43$8;p^lP%9Q;yx}DvEQGM>hy#SM5u&Y**hPp?LWJmu z&4g%6h+rL2>Z1tK5vvFhL=;vXv6K*jw$phmsEv;K7cnBY3DgnIglI!^EIQ(ZkJSJj zanwg)))5~QLT+Qy5$_SgN^2N(#12A8=?oIljc*|gIAKAmPO{NAhv|qHg*A8#+w95+ zZmYI0e%=j5_t6ZTrKr8o6h7}-(ALZ_{#V;7HR<)$ZY54pQWQnk@HGie6p?&`w<}$L7-(1FToXa@o4(aq0=8B}S!NK)QA%#sd@o*<^6$`_% zSc~{)*fdrwhKDD{=Qn~WRpBh%n92!AV*?CI5VP_E@5uOIK(*re@CEF35fssdofHWX zajaHkM6APF7b5yu>I<+(0$(cAQ`GzyL~Z0;Rwd%1?ox|h z5P4C{)uJ+Cj-GC5*nmYeen31DeTp@SQJpn>XLsJ7wgQ|aD#|EuSfj6PS7lE#@;0MW zur^U}WsuY)n_x_Zg4x_)BR^0AdwKAVv2Q)qNZxt#Tcwe zHT)-?xc(dy!hG_&p4Q@3=wP!WQ!QR9wm7E4*!Oqcr}`*F&)BZReqJdB(D{QIegN#V zJgj-nABHtg`NPM>s@PFv%+F)XEt{W#K+(KR{G~^3=N4TV4p`60m2prHVJO;3+t#?~ zFb_qrL5}b|jHsy?8y4qCYz3`tw3Sn>x4m(|Y(Eax~=e_@JGUL;Adv zd{bg}Mg^Gfq9u;0bCfFNeP44T{5*mNyl`5~!Kd*kS}AT4gH8 zZ+25&P>A^h_+{`Rg(z$k7kU+T*-hvqX%1fGRlZL`*Yk;1X4yx+(+$3}x%XX`R+BSjZ&T>t_nVNn8b_nuz-@LTPC$OGNJ622Y*v0= zhuQ&x@1N8mq71R}L)XWGt$dFT1!FA8%C`Z+xyIM&*p9#gTCGD?K!H|%b(P%dJ{q)G z`8gdVD8R}O>rfaVvz33SLqUK{R{pLI1p+c+D;;VB$bb!Xh*nXpyl9npyMHokcAf6u zXuO`R4h}kc9e8E%Axq14xJfS*1i3@@_(oi}5B-f`gNG060`NPE_QgP~@f>y*mm?y;ko= zYKm@~>kYOl^syEtOFAIX%%uaRTC7Nm!g2Ik+ChA?MkIBX zlcXz=6C%0Yu*2>Vqi-E9#y_U0xRDRxlw3J7E@b=lqn+`s!aY*@+qID!|9jS|88uE! ziPS{&J=R1dgY&uwcG#A>6nF~1=s}ufPfz5{B6D<(_uw~BAhwEsj2<6Y2sTnsXQqnZ zMuoLmlAoVHpHAkJVp4i!e1pCa_Mx6UE09kHI&s#X)Q23(D4dQ>q9lD>n56Mc!SMr5 z$gLV&m(rIrRKrh>?aNwRm1CnAI|dEdJ5v1^;N&+c;@UWmA_ls0#~)+NEyhmhZE@57 zDtC*#2~joz=%k^diH!!YTPGy+y{t2&S1km1N(`E)pIWM&*~Z&VoTj5paEpM6+2KWN zFn&94MTXW-0D^m>;#f0rPzX`NLG-i6Exww#-RJP4WKwK&>oQ`*205%$-Z6B7AooDD zHR9N$o@zl!$>bXLt9W;^2BH5kIUD86geg?SJT_$<`&PU=We>Y77EZmNHNX1BRE8w@ z<()M_D?LYp%2zgumolPQv)Gj}Km~9yV_fWJFqNn%oLX7nzyg{f%{ah-I+KL%rWs(7 z2k-JLZ}#7{0*g$(drbE~9*Jagn_q!PC+VKMlWY~JgGeeP)vj^SNbB8^wgaR)Xq~L9 zrt*3bJ1q$b{O)PJ%`^n6mD4D%Z=0sUxwOJhX_( z_w?#Ug@c-Ry^`}QCU~Ax4^>fqPdq&C&^x4_eQyF&^EZeS_bsLJ{(<{@8Dch} z2Ju`CWI103*mn{ZZxFwa>m=L{btn3NK6Hh_yp1#ZsYQ*V_goH>-O75isCn_Nqjq)`^9S{!gEuFo~xJlA3J&CZ`Sy{n|M zGhUAQ6ey~ihh3Ov$aNSVr(6ntT4yDP)3|0PTdbuXiYkRpzG9I++X-fO%+6-(MfXPp zZXoYIvWC^V#{W5(VPN{4=?Gf*eUA+IRw#j!b0**s(prkN*E zY&oSGYx;7`F1V4Sjm@$q1znu-Y(9^MULtWNZpHxwQ* zYu>WhBQH4O=eNr%Wt;; zxtsN|_`LO={UMabG-Xm0nV*nScX~+H(=y~iypDSEu&M-!JXv@Z^*q`ong-BF4H;53 z@P|<++G=VYWK#fci6lU{9vd9BnO3-rX%K`~kfxKp3K5t!8hL4Qmi^XLl9vimloj61 zD~VyOzXTey;}L*CKXw%gK9Dtl)s@UI8B2PX4lQ?+A5tTDq>VKrxMbNWDivHf7CeDM zVI^aNB0=}Xwc^D5X;D(T^ho$OA~DFJdgG4*X~N?lAtXYx!_CDcXR%1ielti;uv20K zg?&kT$^gG+?+&c}25LfN7K^<(Q3$IOIseZ4FY56Mfn0^!_!v|euafryCR0hkBJsdj zDEsqU8PjJnP<2C4Ny`P09^k2B@)M(P$?vWw-uL78=>^2^x&^H^zi^y@D&tn+7->Nr zE3>`$abXP96S620v*Q;Xx#dm~PwwvQ(Trx{aMN6eN_mRxN-`CTpPoF0RgV0HR{8EP z2LnC&MLwy0Dx8%2#Z$>vX*v=MrEZ7C_lJ2s#yB<@YicSaM+z+$D;9V4S=8vsSpF9M zWHDK^PrlEhTmD*rjNJR_;ZdG&CTi(n2HK4j!pp=rPe-I;c>wUVbll|E5?=Z_A!QG* zZzeB^&)ei8l6Wl^nc|SbIRfZ*>=7Z79t-#mhQ?f!CI0vhyVcGlKk-R3@?t>^5Chn%U`)@mwa#3%Yn&BQ2~IhYFVK=9Bhb zD>9dl^O*>e%R|NAM0=Ni6eC%7n7|rFG(44(L#wEY^*D6B{LC2U-9_qB{QRuLw<Q= z9hC1GGieGp{P4baoNIi}8_(0j*ud!K|iIPD3Uy7H@3mVQtz3yey}hTwiS{H>ib`;;EM-y6p2+ zsO>Z*D%7AT)^-Zt^cI#3ljDHd(fM5nFYA=8kp zYv@XG_{|CJ%66gp+=16OUbPJq6Zl1uSQ*RQu8hk5Dy|?a-~OCkcHOrvg0=G!fKEPx z^0T6_Y9d}VzpVNISC$K3&y?Rz!r2((O5QP%C9i!OT2{HyR*4Owp&Zm`yaGs0M_x1) zmT;?3zrk&;YF7!}1JmEhG#>qYdPD8C$R0xlm7BHA69S${&uadU1qCY|+?PXfhxFTk7h9zxJF-N2i@ zD0s1x-aD#vMw$X7Be<-t7f)(6i;?zF;6W9CuSE%r!F$X)V?T(Ngaod5RX&Hqd77IU} zuABGo;)_p*vZJCy9WD2#x&<)lk-Ek3fIB{OsQE52|Fcxq?Ard>2!)NO9OvU0#nqer~(rYQ|fMAW$bL{963^E_KaELT2uci zixrz4_UIJcX1zsqF9fTCz|SvlIQ?Ch*; zE#8Z}Xx2IXRn+`*MEt-2o6;VXUbFyb7&71RZPVUU4Iax_)=4AEG&QX*HMYrbF zxc*c(=dhU~?%VPB=6*XE->PquSqE|U+n3m4k^kMDs@g^z|888L``g%*jdr0>%L_jx9LCDwhP7m;DrZF4W$wji5}7J5)}MBnrDgWJmU z%UB-~@Al-oi4nCN?9ID1uOUl7 zV#atjS_j$;G4Yq=&}u-P03AY0zK|hGei_U%#Nl7YvuPso>Sps-)o}Xc(xVpEMf}gz zFy!=WSCb;vN9qQD11-%bZpZ>l#OPm>?ajc30Qxstu%%o@OOjrvTKDUSc<&lRqHIbm zMju8?mUE&dPJPrabL)5(S{JQvbthJg!*HE=__x7n!JTzw^#CRU|GY3!Xnt@{^!>*Z z08vCq0eo7ku*O;Hz*lP;f;y@`YHTP!WsJG*J*x$x|RV06=mSSfw!aZ zI1JdV5h23~L{Nr1;IWH06~4dpjsW)5xP3o9Z&VQubBn}*Vs6y6vQz%vEm wkG66DPD;jKOIxkRVN=GTYv~RT1Erx~uvR)aU3_bAqUg>P^-sllq+=n_Gu^{iODVS0jjgw;HV9TQ{Bqgk|ji+K!V z8{AidR-q9E!R3=mU-BqiwVh>}%56^m7J)|eL!7)EeVYdZnwp@7*dFbr#PMq1c$||L z`^LHE)Jdjr4~++5zUJgLVnwsA*m_^H$S(eQ*yF^ja@}YwtfZ+nowycAZqk{k7Y1v5 zt5tF<+d1NlHX!zjML+91`AtL{ijk0TD;8nAW<3xVLfCXf6(MYdXs#pPCPX+P!gR!1 zLNq5tsE%0TrwGvz*Vcg|gea^!;uk^$+s@^)kY+mO9AV@(!8)Rj5Y1?gMMr#22+3-Y zj`+w=Vb&4v6GCod(h=JTVWl;UI${eUq;v*}XwP3I3^-vSs!p=fKZogvrNSCIgspXt z3vI5pbiM3>qPuDa&eGIQXc~*%bDNtP#{X(tuBN=Q%A+JGN}8hRT3!h_QBl$*Y;p1z z1K}GhMS9CkYQs`@UCSP~&1GbvfVqs{K9_OK?bG^Sm@85udWU)zLJFH^;*m~XFXlyL zvy0;Ui1ExN`bTz7Y&Zp`RE4uFV+JQ6lcgJ!5N739d?Uj{0hNoFBj>VLL`YOyc331w zC9rZaE@~atx*XNr;wiu$$-F=$N5>0wuqNh24^_PL2WdAr?=UWc@>*>R+K?trcB@8uF9Tf>MqafB_&8oBCbXS=YyJIg=k)Y32Oe$jGQ~PXQ8P5`VhmNJ#Q&H0?kD5I zm|rya3tFNIamySNRo6nX)iD8fo!st#>ZcG%@$LFuSSAI~`Gdw!0`?mjhC3Dr!*E{& z!k>!e@q@^2U&n8@tbGvz#qvV&T*tgN7j+MhtJij{j^P2%gt<%CG-3mp?jb@aR0V6g7>EIT7N^ZOimoYd` zd9tSP8pX-$#JZ%^7G>BmO&zEynTB-r9t@R<(@Es#H;s8We{qGk+|EB~UYEviS%rw8~hJ-|3P33W=P~ zze6L1Xgnn@cPecAP9e}KQuDlt+?Vw1m(cxkXDhQ*lAE-Lo0N5V&{9tmV)+SSN=d%E z&ShxduJiFJ@m=oJ8q$55YN4Y;YAwX4HIju9V-+^QrhEtC8dg0i+8);%g%_? zT~GJ>{xyG^la6o(ur~r^>Z%Kbv07~)TqBz9?L!gJtJ{Kp2kwZa>cCh*EL8@=SgAY^ zE)`e1$(7Pm&#`(D-QCIlDHeAhk$-cAN3k2Y&2GfG#(&nKa6mRIKcPb{0Kv@<-=Yk& z@(*r}gJY7>T6xnl@m`NqR_8v~eP7?}%u)<%@D|AA{ra~F^M;Db*Fw8B?iu|jvdDl8EmN`A z>&wLPj1*QTa8j^RQN`ni`V%$D;0NGPr8p;%cEXW{%Jl9addhz=P}di1o6*Nwlo#nNKr@rhj#9BSGX^Kmo0*63%^r}_MoyB)200<}*lj!P z9WeOr;bQz_ib@#xIL^Lh0~5ktzja_UzD{@sN`JdC@U{P*wWLBYqEw#NE+`H z97x1HysyUn@2tfPrSP*uyRnPz@}V(|9e|?jt*Cema`HR$bz_)UUp?J3V zVyU40RbCznZX1zIXG#l{Uv_32ZZ~lvL2*zaf=1>b=G_FzC! zbMV2XSY-4=Lpn6*A_Y`$WLH~21xJVKzK2q5#W+4lDkBxA3D8K>L(#S>Oef8f1=S4h z5%J?wkjoz$-^ENrpjtMbQvCMu8q8XY?@{ru@vpG8qVP{UkW_n3Sb%=@ghwdBP8`jO z#LS6__`WVIYQx8Y6`Qb#k%V!TyP4$-|@O*zM!pn-meLP=_M*4xjFp=@`_@wC6D!SZI zwXa`~LeR+DSlx@5@)eV}CT@gc{39Osdy|rx+ORTGk%R;;m zu>Z7kZ4@_$wHBVoI}rW%kN?JCx6@O)t4*gwtEu-Pjf|Qa9annVqc|N#610hwVd5`n z>byA=Rmce|MB&uFtUw%`x+JxnD4{Y;E_=yY?5tm#fLyK{ODTOm3;A#iut^TcXa z?jHVRD8s;n850~d18ZyMnWM;q6Vyn1kY=Dxh(lg3R*0iBp0|0)985EhqUuOI>WsI_ z-DF)_B#NAUQiua&dBITyh`pC zjoER1XV8ybg@S9c(^>VJ*=vT9-lap!-QG7E0^qARMK)mqz8Da82y*Qcjb5YUp@@r_l3E{@4C57wt#RPffC_v;TUZ}ttzv<_<3F& z)D!khG-fA0bL6f&MLoN>jaM_8g~Ltr94h50vMb5t690PkBvv`{9IbNcxkJHT{UV=K zKOafT{rmH&R%tpC3+3!R^Cw66JjOUQ6l-cKBu5G@5=-Z|^IO#D%~*jJ{h#?{(XKAP zMYsO702#T<3;kof;Y`%h!wj?=DTEh_voAztV0i%Wv@BfA3kWa$oRG4IcQccZ#P4l# z5lLKtMaJ}%!a0KI2J96fnx3EhCx$#Wum{c!rk@+~y-J@Tvh!1rwKwG#-7dpOSAK|} zHwF!T>*{k?W27zEXZ0FG&4B7}EFi;2FFX`2a{_&6?|ffEf(slF*B3_N}>iS;1o6n9}+MV&dXq zeuF^|@`wpE*#5<|E}a8ccy(##Ke&QFwUH|05Rt6O%Ng!+?NOy#Yt-D)K0v!Y+!=Z*Y{q z*>7xxPb@3#f_I`JrJU8sew}+y={bY>JWW_4UN1X_3U=PsJ{Yasn!%dTw~N->IzXg8 z+g8)%;mdbMv?$z-a&#xX`fT2gdCB~Y=v*GpD%|7Bd#JcHh=p!YwDDpfIh}#A zRB6Ji!UG03xhvgk=vJ5Y{zUU0@W%Iwx8J7|`{(z&vr5r!S0*k5(|64V=9^u1wp(1? zH2}KkyE|HK*e)jQ?x;3y7Ylb!LqfQ?yBn)?$5e$G*b@= zY0XG+fcl;c`std317MVa2dCe2izrmV4JSeE%6GdzJh)VaLk&69Ms2a5Op2QjY);E4 z{6jJC^9j18KM{Zbyf6Dm+;fl6xnh(;JOl&_IFEWm`3A(ZeVB;S5 z)MG}IE~~rnA7h!t=iTDmaR(yMbfSC8*^?l}K}a>b2YvjAcH6a$*AqdoPSAK#Jb7ZI zPeA4s&;S8zPQ2t*>R(RIl)aJg-ma%UL_aWS2IBI&{d8MgY`;9+7e)*@GZwP%_@ZTa zD5LWj(c(b7L~^KN(V0%xYZE#m4dHfST`fL1)5kLJ@!T1C({l4f*x4RqW+^tsq9{rp zT84J|j9Jt2o}E3dm!>I&z%>JIjd#q~2GVLXo}QlFOH(RAW2JT6#b?{Gs2$8k*A3+q z+7Pst(9-fxirRDS!tWeyFO27pAVC~GKaV{r?*DFhRJp;X#1TE(NVG2^|Aor=72gp} z!i7hJON=(9J#g(s(S;bik(XcS%_7|wFYIL<2AOOaP!ug8J6D^QlarmJCHin@%sQt( zikj~SBqjvel$N0EjaEgQn=>V4){H;r=1onRk)48OMs}B+Ttyizx?fy{tI&aqxon*1 z`NMF03x4R0ujhwUW)xR`SkGpOqDv2`zXXd5mxgs6+03T2!h%!KlH`+~fpXBNO$eqx z4gW~_2K<&Q9{n*hxY9f6kl6NPe$+s#ZkzkjHV4_mXrTvXipZ>|pUu|QFJhW#`%@~L zB*y;Kkrlb0`zedTFFyWxUT}vnn{pqBCyUI>{h1I8FAs-?zr5U=#k-p|Li!I_Xwo(uxlw% zE24FSm!PHj#0^#^?3 z*T3yLpJPqz0ATZ*$2a6MH!S{O7=`35g2-RrZpS6~65-aIBNU_ff~xxr?Ht z;0c%jL)Uw|AxTm??cJ)C1A5ggiPVD z5H!vc^mGH@l1I#Jl=|zJCGVM8=lHjd&>C0YL>>P=b%R`eD!_18g&&k7jc;TAu@V-< z(mJfH1wqUF{fg3b^Jddiv^f4=sN4_!X^6d{@LeU7g4pxJD!&5U;^rUz@FT$27zw+5 z01q^TRU4tC->DaLg9!HTQuwkGyM^7;cgx>^wRtve>PuTvcw;;WPZos#s+s2|DH(r_ m&9yRzO&Lbr_V6%JHpcJHv9KPdRz;^k+uTbiopb)Zw*LiJ#=0f| diff --git a/lib/wasi-tests/wasitests/snapshot1/fs_sandbox_test.wasm b/tests/wasi_test_resources/snapshot1/fs_sandbox_test.wasm similarity index 100% rename from lib/wasi-tests/wasitests/snapshot1/fs_sandbox_test.wasm rename to tests/wasi_test_resources/snapshot1/fs_sandbox_test.wasm diff --git a/lib/wasi-tests/wasitests/snapshot1/fseek.wasm b/tests/wasi_test_resources/snapshot1/fseek.wasm similarity index 99% rename from lib/wasi-tests/wasitests/snapshot1/fseek.wasm rename to tests/wasi_test_resources/snapshot1/fseek.wasm index 14030ba1a709f753f8bd3ea001d80b64c7e3c677..cc936afea087adc22f27cafc000fd616c6f664ed 100755 GIT binary patch delta 21 dcmZ3qnPt&tmJN&Eu!U!58kCo9Uh(Fa4ghe%3akJC delta 21 dcmZ3qnPt&tmJN&Euq74;TUaD*Uh(Fa4ghY+3S9sI diff --git a/lib/wasi-tests/wasitests/snapshot1/hello.wasm b/tests/wasi_test_resources/snapshot1/hello.wasm similarity index 100% rename from lib/wasi-tests/wasitests/snapshot1/hello.wasm rename to tests/wasi_test_resources/snapshot1/hello.wasm diff --git a/lib/wasi-tests/wasitests/snapshot1/isatty.wasm b/tests/wasi_test_resources/snapshot1/isatty.wasm similarity index 100% rename from lib/wasi-tests/wasitests/snapshot1/isatty.wasm rename to tests/wasi_test_resources/snapshot1/isatty.wasm diff --git a/lib/wasi-tests/wasitests/snapshot1/mapdir.wasm b/tests/wasi_test_resources/snapshot1/mapdir.wasm similarity index 100% rename from lib/wasi-tests/wasitests/snapshot1/mapdir.wasm rename to tests/wasi_test_resources/snapshot1/mapdir.wasm diff --git a/lib/wasi-tests/wasitests/snapshot1/path_link.wasm b/tests/wasi_test_resources/snapshot1/path_link.wasm similarity index 100% rename from lib/wasi-tests/wasitests/snapshot1/path_link.wasm rename to tests/wasi_test_resources/snapshot1/path_link.wasm diff --git a/lib/wasi-tests/wasitests/snapshot1/path_rename.wasm b/tests/wasi_test_resources/snapshot1/path_rename.wasm similarity index 100% rename from lib/wasi-tests/wasitests/snapshot1/path_rename.wasm rename to tests/wasi_test_resources/snapshot1/path_rename.wasm diff --git a/lib/wasi-tests/wasitests/snapshot1/path_symlink.wasm b/tests/wasi_test_resources/snapshot1/path_symlink.wasm similarity index 99% rename from lib/wasi-tests/wasitests/snapshot1/path_symlink.wasm rename to tests/wasi_test_resources/snapshot1/path_symlink.wasm index a7ec5c58c24900edc66cb8a63fc63301d609a852..91f11643cf726aca2fcb57d40d1f4c5d6c855f60 100755 GIT binary patch delta 21 dcmaE{oaM!GmJJop*}}6k4a&%GV+)QjZSnjd_-lXNrvZe%k=)&{$>U;yZ7SHZ|}AC+H3Fi z+-vVS^s@2z%f|9pgSF*swPGt!c#E%xVWi4DzB#5w1FH~Yt>f6U;w5VfYxR|eu4AlK z^sw)mR=B2G;i~g{rm5WN!C%pR&^4iZK#W7QEAgb1ZM79H^_A>>xgI^y{t zMTm}giV$)cla5$H2pjP*>WHf(u9VIo5%K&oVXzZsS9Owa2_fe&9r2}jJ!~Xv@%<+( zOzn7bLp2oLOEYkmq4q>m?~CYYW*F9PdQwfjw6%Inc3bDfa8sOgzHNYlX`-o7IRX zTz9gQ;;btrskRXtQWefd7;`uQLs+Iku`?S#8W_oQ04iz}{h}7IOX7{FShigpi%L*| zYK?jp+}20;wQMTFD#`q`I2PSK;y_?3F(m*@u||!s$J~xx-5oQFT@inexq~$bPwYy3 zUyGe$+4?*LriEraHd~MpEuE)V3MNx)>SE0_>t;(KeJh(z;kT ztOtWQUbJ3Z)9z|xcaM8+W?*;A5Doj8VjHQbIU1N69f}nCcQhdEo-0Age9o?kDx~e- zZ3=Wp-xgnUw;DA_APyvS9en5sx!L~GpwRd}z(E7UY=NksLSlx^avm@-=Tfria=1F7l`dU?AT)*xgwNl`1yw z_cV#G6|<8ge%}!`C*RpU=z6)3$M0=!My?n1LwKQx?%CIJeg#(S!cU4xJ=3Ft^M32H z;+38m*-eyxVt73oX9l(va4h&2!J48OGt`l27*|I0S8nC4(swnug5u>B!j;nJrlOS; z#=|sah#^zG8AC-yVn#{~Jby__1}hhDri`~Vt;0GQyk0m{vskkjm3m}q9rOxUbudmn z&fo@W4nOxfe88Z1OhXFBK~w@Y(-5{8freHY2lDG3l-FScJd;(e_ zqCE_5yV}EBUl6g0orUPz4Pmjb@6zlo*Tq*^`}je8m9&S!t++j0_=I@$mI2_j_m(eM zt=O31Wq%W<%rOO@;rw$OxYKRKF~^VSP&go`jaTYWM?moX?QN7DZ2XzFF^7$>(jf;Z z?Kb}Nlhq0iFa8x;@a_aGpwD#32FPmThjnNg4O(n`PaCP(#y9Fv7mS72_*xyZ12Wn8 zavib)GGZwRi6ue-8L*%Z5l_{|8$?Q0U(_Tsv);l{;_7EHwI!^i!N=PGL-r9%?H;&G zPu?Ov&VD;M;@gKW%7C2YRUN<3X5!)rl}in{=!D_)38(( zP15k4YT?u3li{(WB!PnHAX$O{oU8C@c^ri!M-}Pa;SM7&*1IlEalU|{g&6|=DF)~E zkGO(>O3@Dp>IPPB6(zZyV!{Zx`ixqq|5N{}h}{*cd-n<`Dpg?Uu$KpXuP+x7&?{$JZe-w-%DfbnOfW^ z7Tum=Ev8+l9MJ2xyPO2kNkpX+%f%)dZtvOW_eu?#sh?`9n>ok1P2d6z!j~FF=D4{L z4J9Dx$7|8(hs0BWlTdwBkLw>sq@;Iw7-52Se0eY$#G&!sV`@=IP&v(bC{=k39Xk|| zg|=v=FiuEhbs}}bKK8yiH$h`tgmvOP6f=t_Qc3gt#L?_cac<(+vNIpj`; zTxp(EX*+?1;mJ6MPlzLvq7k-VPs(H`MBL=O?#;TFb80y`G%TSRh8Qyqs5Ys+aOjex&PEuH!RPlxp72xomR?PMAfuC$h3dH>v8li z-gOuHWA6R~J1<_iI}zX7yZ>v#|7Af6uxfqx9>g~4pIf0Hs%2mz3S$StLvf=JlAELu zsTRwo_v}g~g<8;7-?b||N7i;lsI;OWZV@9 z>-88(#(L6&i7(OAg>xw=p}!^(^1vWet-~Hz*{A3fD4{wJOHeHyxDeOp8m^z~F$HH| zePFUxQn?vFCuVpfu=pe1z7gkWsSr~6N$R1lQt0Sw5bt@tYS9_d`@y;JikBZ0sPQvr zJq48S$Sgafp@u(C!iIW3q=8`ELw|7+1Gy_LWGod);`4{P+ay<6v7QqhW)DoG^<-Gf z_51;j3!B$1kJ{61Jo3Qfym(}Gl#P&j<~%Pp&rTk<3zv2*gz*Z!M+&M$cSr$c!gA^r z78W5osue;Iy=J3J`kcAE;kA!nGv$-O)j;c8DG||gJh3$d_aX&^+SDAr8X$=y^JURl zF>Ow4a(fb90s@3OH_mk!Wp+OA-@E}k+aO+ZfY^udyvNw4QMg%|4>(gk%jnGpSlL0~zvTyE98#DXUO1|SwPnld(uZd`cso7A-trEjk0i5l#(a(4r`W$K*x- zF1Vpwy7XWt!wcyHRqiHeC{ZQ%1WcBYfJNegu~44oH?mdGBA|*#)JVgabyFC{u}5-m zu-m?mzSC~ES01I^M*QW9vt6`}K~Zp{XmeRmkILLEW-X2*-K<$0iRrH{{>Kd#dgieM zF@CjZ77iDj?@{N%3E_>>87C7%ECg9+&ofqbO+49!ram zwRSDdj`GJ3QA_7Bv~!;6%OZ0Ofjy1Dom@JNG-NP?;jzpVAPIVyWFm=Ais{R4A0+qY zG1EoY@4zm4a|)(;nd>1pl0DOty?mt7Cx{En(jaL}Q3>g+oe)Qh3haL09)Vi#q_}hW zz#EvuxBQ^ZZw@twH;Bb6$ns??K5)s1rw=V%5J)%hflcBsDBjY4EhTQ0&%&(4d8QJu;S0i`Z4MfsK-iPKuGMmg}~Z{%}$> ztQsA(AJlTa{RTc!6DK9`nDjW-@ajpD z-dJ6es58ZSlpNqW*D>{LW{GAHy_eoB%GcZnr|Ggb>BgRw2VtqlW1I<+D;TG!R`qj^YHKP>jL`uT~UO!7B7isGL%~k1Tg73o z=1>~NA#+-Ed#Q)5d^7N}>?-%&`O+3c|Aw7dkg~G#5R}B}9nBVrEnvoKzxwbTt|?LB z21T)TRQSbRSSFko?iRhbEo7Bq$F{wYe8#JT9VNRl(g#fBWA4sZIUb%ayt+eeDi_ur zDcJep?HrF(mK~|A(wDj8tRduGn(?)W+x;;s5tnxl#Ay2KIq=8JyWL{L>)qHD-~QL1 zVz`XlT0W-ZxxJ`Z-=T|g;TxEjj8b}Md3RRgJ5hcMJ$_nzCt$44e37hUfB?7h4w)waWoa5@WgPe5)BS-w!!!8fer@twb=g7eb{qYbtb+es^7-fbZ9WX!w#*(xBgHPWVv?e z5=)XwQk-uyyqTa}Fwvm{57k%z#f$!mO?8DjqH2a?Lw~G^joSK=On@G$_bbu&qMY-v zF}R#;5gTh8=eI2p;XWheaficGy!()yd_rL`%9Or7~TjF@r zO}?Qg(s04pC+2^&fST_<^0F#%N4*>0MfH>MJyG8S-=FFe*t@>2AI~<1Y@>ylNcpt8 z@8G9qldb{ZmyJW2CE(cS_SZ z2)(_0~|>EBEb%{Mxgc;GPoxo=#MVDC2rkXtW(Q^mTuP5OSc zgxUGpz4PYHo~I=Sa0f!1_)$So-WMmn8)`M0oytvsx`^2Gajd5pe10AB;<5Ajtd|&a zArIfR7Y5*aDw3%ojn364SZN8ID6I+{?nXUkrE}ENNBKL<*EK5xL zp$D7gEBavsgT0PkT4-e*oJv1T>Mw5nF`La6tAEUc>Kc9=psHcMPAx7o5_hkkN3cm^ z5x(z<>Yt-v(UU)Chrip|uaqwOW;N0C$^h#?KpOZ>6LYSNxMe3G66i5VLv3JA0Ke6! zC???hYi(oa#Q7_6xUblM85=$@!l{H{d*9a69YW#QBI{hM$^%f>ieUm{ROGtjAwZ)d{eZ()Oc{jONp|nw2-khUJtYeum}D} z;(q`p60IGagns++WWeOM^=~yZmTS6c>3ayH(CVKr4hB-e_W8!rQD(L=a_?ab7%!O% z@mv34y&tD!EBvF^Rcwxx9#U@t3tZC&Y1 z8+%k;eY~{M#v%#|Phg+}PN8;xcvB&)+6wVcP|tjoM&H@1@UsLuu9<0%3Jx#1)1L_G ztlqqN5MfpP2elb54mcKV$3v^Hkuveu8m1L`oXTi)>*C>Cpk#G#J#1$grcU%5n=Q;w LDBW^GZ|DC2xC)?k delta 8544 zcma)B3tW^{+JDbGGcYhS_~I3Y+dJcpJ6;I9%khFJUcNNTTk5u(TT`1iOlwUjQNc*j zLt$lQWrlf)zA+;;Ln9+IQ=_6%Bg0*{^@2vb>}I}4_A5s@00hdnBumFqgOu#%x_2JuE9xy4|jN^EiT==7~*MY}|t z(FVj`gZSRDEx(p%9T>5P+pq}ZWzPd)C4^=m3JIYRqMd>G={X?62@z%>8VS*k5Do+J zd4R%hAU-05ohWPuVm~25v`hKS9%^8A5=L$lVjwmXB9!J>4MaI1B&)#&;;8^dkb!ud z5ON!ff%peWXQMUD2I3+iq;w{U=*G_y2AnXvYLI*rn8OUj7h-3-9Mk`5V9qijpZ|tB0Rx3m+C=ciP1E zc^~bZal=eT=4msN@f&9{epsB2xWe{{q5W6JtW8!FZ5226IMaP)YU|?pk8nzif&5bL~9*yB#I zjpD~R9bcRNR@VdAGeuEGf|sUKk};Pmd%Bs2W@muU1L8ZqOGx2*ED*<=*NN-;-L1?0 z!8JeA&&YB({vM{-auhX7$D(G3BIWxp!V0_lYCs6D)-^$eU<0~OgPQ2u=xyp=qXr1X zzWA;~-dZi09UyH7HLuG??pAWehIaI*A;9DX(Io*14B^K|(kBBMBeWC*Me(Q+hwd9PUb(CgecnumY z1048$2(Co1uIT0rH3tpj%BTU#Sbk1=q^|H<#ltrXXG-4=&DbzQ9ic13Oqps&3^gwo zvr}T=&&yIW*e3CI$|P&uTI`d-YlN2Ck2Q$VsfVXmLxu242jkS^3>H_jcs(36!KAn? z!}2FWR04I&Ft!xogI1Xc@|%5;SFghSOkRmb3Q;W{N-K{2Ct=g1+Ig*C$pHbqoqE}r zwSaWh4L%azd$P5v2tYKi5G#5o-CE%?f^Sgxm%V$Y-mEj^^9BmT8aa^AwLw0M{gU5m3H6u1FI6xWq8>C3QOj= z{7-PIxlCMhnQ?gWJq8pGNVD+@18NTlZoZ+FGR($TwvIV${9jMXRUDwS+xXuB;Yi|N z8rV+20{X;&Y=A;+e76D3ph2sRzuZb1Y~!m9s0+q|Z2TGo1B-S*790QBfI$6)+7wY^{0=?vl(K#TP^03ygT5 z%i5z_8xTIcJ<|4!;W1&ph*9|lsJP6#YWOr3*(M`X*YEsIr^LTUq^f8VM{ZM_%EVVA zV@FE@1<^sW1OPZ!6AneBpKzq3W}`dOVdgDH*QqPoiwIhn!SA19NcMn;^9ZOE<1C=A zf9G?eG`n+*#L!mSQ6wa8=4LI%t&DV-u-iHDLH5TextOkrP)&YiLm3Je@S1mLWNN;Z>T zDJ|2cn+zHx4?=_51y7(Zg{s0Ud`OGz85w?)STbgz|Cl#X=vIlAF}aB~;4=dSWfuMN z5@V)u&=WB1@q&VadBi}O_*1Skq0}J2&eW5~3Y6B*gA=&S7$OBLe1oXW9n(e9_@>~b zBJSaqrQYzdD;O&g<>UIWUEagvk{Bx$6*;cXR5}KG_>H<-BTnDjSqz^*X&`EJfA1?3 z>X_PcN-ViOC8ULHu5v&-Z+B`0(a}U@6Uzn<^|vR}k<$Ssn2Tu>T^3M6N${#uB6H&W zh}u$2@6W5y7{|prz=;y z*bi;cB>wr(0`&NQK#Bv0w4 zoA^diI(24i!Sj!)#aN?YT28m$9-m}htxYY*_lfhC((v2uE95DkH9&vZHkzMJlXaoG$P4$H1H%2}h>JL4_n+&|s@IQp0F zz8n23Udlh-D0hF0ttloz!U@0rU|>Yp5@5A>+eZ1#eTaH zA}O+{m!)_e;J{gUM4Y-83Bv1~Gfai8?!GUb)rj@?4N#j;i=+2N#+`?-9=DlftRX#E z_%dBxJf8vz>7Y&o-9H#L=!pAQ^=&3fsLsveRjV7m!Hv15o9DVMf!WvYpBf^mT#VO? z*`5e&{)i_%qMo)2B9$MZ9!e*LPPba|p~s^(H;CR3%!j#OeL$dM&wOwlP~O82+8GVi z|7i*s>iv)of{73PS)&CcS9;I{s)NL-hkDrLs2AFZrj)h5Nk4ci6F?TQy9#ARt3<4DR?OWAbKwx7}Y>4Y{xWM zh*prslf9E-)xvCsi{U~Sza^FAg_I~))6F{0iGCR>oxuo5zi_6}B$Vit*9nO!J1-O8 zWqIp0Igi{|?ubH0Ulbcf-UdD>E~KN&adJuAHS|RhV*a9`xRt)Os6!Bi9BTc;i)zTV zOCRnMR7;pzvE$)wHYu-*Qc;a~{IQM*oh6I+g)}!naD-E>7`!A3;W2f|Kk{!Wmmxit zli`K*fkL(f8cI;fJpq#?Bw&?zV62pY`K@dfun4HSA!?*yfGDFKuH|4oax`n1f<&z51ZPI)s zCM>tUU?x(|<$_MEUIahh)hU-4<%GkS@Mh*_{xpcGBOaIbe6uiM&z?^dB5Q4bVrY~v zT!~sbkExCG%vv6qW%Bbh3O8)&G}4g7i3|z6a#{Q&0S}XlNa7=6*7Dm2OWxeUbeHux zu#+B(0%>06ddQ7r&x~X*Uzdyt;==MYNE%aEN;+#J#F4^$yU({rp-wv@?piVE7UuA- z*l+WhL(Sr~V(Ch<{DzeuJ7vVvhqli5ryKY{iTLxXNF3o$uUgVMknN}@hkGsYxPlOQ zU5ln6e=RHey}gYFkBJLKE+Ys{dXUF0WBHhfEspgwN-8=ca*9_Nwv_&GMAR3L3D^&6 zx!Hb$R@cNy3EUPVj&(d&lC!H2+lWwa+><%XzlqedSXkl?ENa#vqus5xaf&xfY7&e^ zu^%M|c+O3W`ZTjlH;LX)bQG0O&4JT&S(EY`rwQaZWSm)RqJ{*l^8a@kxrEH{TUZZ>3c7 zxg5O8yS(gq2LFqDW_4#jox=ASGvs5Bc>kGh{i}RSSTNC)r|n=aoL6))Bub-HArg5M za^E^GT>Yv=ba^q}>b8_W3IFZ0Ap>u9_itDmlG5N?P$ixS;I;Truv6<&<#|eJ6o z^4ka4Rx$X8Kd`OdrMs6iR=2*YV{9YwK__uE6`%0LaLkE@4&v1ae#zUXYCU6R;=^~R z1r@&o$|ptlJ=w_65AI3F5&iO>VYrDm?wJS7Jbr=)gmD=11{ndi>}Lbwt&S1Vg{8iH$1zTqZy_)%z9bdr;1~**IKIO2u`*Hpf3{h^0py0kNK;+aGH*;n4lA6-xfNqeZesjcN4s*^IKV$pHH7d;^r5snud ztZb%0L8OyipBBpw4~OLr9-h;&mCB*uMij61;;X!aJ}Fk=U57r6QQNO2yW@TY$Dnl- zzDE4~*;KW_O__i&5Bj~+jFp?>dz1#=hZ34Yx6APxT#P?UGX znZFMYX$I5*P_RfnAIGA_`15O#2Tz}0$aFFBLN2~9UKoh)Hy8RsZDALmXZ^$*7bmg( z;@ZXBPR>wG>4e#7Xi2~sOB5wb%)I1;?>us8SV)0y{Ap2hDL+!PX^It85op_??THqG zDQRLx(_L(=*wwV$avr!o>n}USotHbYc=6!no@|Db56;oi=MPP8rtubLQi zbzn#`ARX(C6$MvE-S#{nlIJl9L#=;~AHUhGC>G!c=&fV*;_B5nTu-8Zoe-WJp(#Na z?}OHjwxd}3Yv1rZK%D`tMoU)gD5`%Q$U2Ivzvi+oBIjBKdsbY&HUN1v`FdL945wkA zKcb~s!~^M;i@fW7T@}EF0osig%qV-%l3cA+wbzFy_}93K(HZ@IQc_;ZSQ@VZS_jw@f06j}!$hLDffLbhJDvoXytZby%CapTuGAoC zLaTqdGz2&W-1F7tQ-j%aky{R7z=mp$h+?+-_wt>}+|Wm3^muSPQD) zf`1OhT*UjA<&hz5uJ+N#geAS;(u+6b@(m$udj7UgfK}rY6#ky(^i5pAj6S z6CqRhX@c&k4t}T!aQT8zHi5lYelV1!_PBTyBc^}7hHCv+>IN4Kssz8ikZwPtk(Spn z{e|+*HkQG@EFWiMPTLh4V6Q6t+GphpZ0u3>>ap^RHWrcJbQ}X=ICI+k;05Ibuxbm$ zKS;gcYc%@)ZiSy9&~ZJOcvNsyNlt$xq*ndXOM?lk;t$lpcwfLFXgeNSeVvqvpO$v| kJh!HdLASaaTnm(}`kj?_mSO2skBn<;=OdI}Iik1rA6)l&p#T5? diff --git a/lib/wasi-tests/wasitests/snapshot1/readlink.wasm b/tests/wasi_test_resources/snapshot1/readlink.wasm similarity index 99% rename from lib/wasi-tests/wasitests/snapshot1/readlink.wasm rename to tests/wasi_test_resources/snapshot1/readlink.wasm index 20f2c6b5b8c49dcd369630866113ceff10a00f8b..f1a1e9952dd484c31bd1b7d67943e9ee2f383668 100755 GIT binary patch delta 21 dcmbQXnPu8$mJN1q*}}6k4a&1h0RVZ>3WWdw delta 21 dcmeyjmgV1CmJQ{v*b<9_Ei95Y*S>1h0RVT`3N`=$ diff --git a/lib/wasi-tests/wasitests/unstable/fd_close.wasm b/tests/wasi_test_resources/unstable/fd_close.wasm similarity index 100% rename from lib/wasi-tests/wasitests/unstable/fd_close.wasm rename to tests/wasi_test_resources/unstable/fd_close.wasm diff --git a/lib/wasi-tests/wasitests/unstable/fd_pread.wasm b/tests/wasi_test_resources/unstable/fd_pread.wasm similarity index 99% rename from lib/wasi-tests/wasitests/unstable/fd_pread.wasm rename to tests/wasi_test_resources/unstable/fd_pread.wasm index 9aa800fc02ff5419a1bfc9ca5e8533d38dc2f134..1c6c205c022d72a0e0389f428ffa08d0f5a80940 100755 GIT binary patch delta 21 dcmX@Qn&s$fmJMz%*ut|j4a&s1psX}38DZ1 delta 21 dcmX@Qn&s$fmJMz%*b<9_Ei95Y`@E>s1psS32~z+7 diff --git a/lib/wasi-tests/wasitests/unstable/fd_read.wasm b/tests/wasi_test_resources/unstable/fd_read.wasm similarity index 99% rename from lib/wasi-tests/wasitests/unstable/fd_read.wasm rename to tests/wasi_test_resources/unstable/fd_read.wasm index 9706a7376fa927fd02de459328932f4bd26879e3..5e2bf767f63a629fbe6d94d7f44cba980cf66071 100755 GIT binary patch delta 21 dcmeyrjOG6_mJK$~*ut|j4a&4@k#)u(R`qT30jX=ShNB_ zRcMWY*d-V!MVZ`e4CZB?a^t@_-z;~UH}DEM#4?RvlJ8sY=eOleO9oH$^tYbm`Kw>A zWWwRRzypHp5X4381|Y12aO#LELO2Q0Qb+6~L=YhYbwmjvS`xycBR2Rc0(3+nAp(fP zt|OKa!sfh?&jVWMn46@CwvA0k)Dxlw@mO`lS-+|l9dXi6Vb&3!6GGd@q$3Ux!cH=b zI$}2=w9^?hM2vWkFwletC_2d&KM&UtZ^&Nu&U}YwhP|cIYU$ca*tm;o5O7LI3{9RD z4h!cyq_|glZnRGR9WVa_FNey_dAR`Z*x-MHR}Ky7)4F;wlys^l5#kbcOL2p=0=JIX<*gLg`s883Z3>OcMn3=RFN9fZIixZzaP4s9t^$>f+mE z+put6EqjIa=Jhf!Yzdx?VJW;^b`6gW+3MpUSp+~9QmRDG34f5^kcYx&@vX9R#KVgF zHMuOpV?FW)lvG8z6m2gk?sYP@T`aGW!`i8M&TjX9|2+`ViLrr@cIk|!W|X4MRHJB- zPT5Kng7wyn$%h%!U}HYhVH6dw0w0N;Cq+JXXPeI==Rwn6>Y?zzIJImOHJO)t7DOc| z2+Z5c|yYR-Lw&06H`*kBX=eK8~j?Ii_F-!{;D#BU}HjkT|31edYu1bed zyfGQYDM0MQWKpnM&geLVS4mIDqod2=1;jP1N;AO`MoOBfMu;aEShT5sekP7epla&R z7a|=ovP>c;)9&QZc4+|^dx{%SK-0cl9`CfG-9Ex5X^s)qJ~#MJ=2_6$&Uu|&n)Hyh zi6|qG)#s8r{JDv>8t^+4ck2>&CzmF533YfaqEIa=k;}WZ=j-IVT~xl#Q`IGcz zcI6E+yxViBKWy}uK|K}#dlN=0ZKs;U5LewCJ|e&Fb{{27>+XwEYyOaWRn1cisdu&S$j?6g!K(ySb7b=MoWm*hc_ zg!bsVC_%w2?jQMpzbb2rQiy9M8kGkP01`cjikdzhh+gh0UV(u-rOOi>VDmQ)F2Bw7;x88`3l6|b z!Sw>2;)+sm4pao1i2_|ZHm8|h?!8OIrJ0jD zveX~(bWtmB4o~>+okY(OGc4QR z&yS3aC|g2XIiaPU`cIBY0FIS{v0TPHn25$`#DjbIRcXsq`4O3znFD{nfq9KQkU4~( zmbOv*5$KW89CY6tUtrWcWX>quPW_e z5iknmhp0x?m|#f37NXIcB#OwVo`OI!Gx<_U6YjGz_mR%1gIgZyY^F8QD8GIrh8N3U z9#MIvj2NrpxP8aIhP94Xy-PLi{oqLr{h%fnspGcRo0Ko z8~xuJL9zuon^J3sFW{h#U_;S@c>5fO0SyU~f<@`AkGFG?W#c=xr~6;Y*KU3UE8+!* z^7X0tE-hoFVL~Fb>pWrVaDP{Vl<{{ZqGS!Uh!w>cv?{ zL4;Jvx(UJIRcHd7C-gT0yj~_N0n{(iYe|i#)nn0IS^9=dp16nte$T`V4o8|M&A=Pv z>`8sX>Y==ga*Ud{C?tHmVvRPSN53flJ}DXYzBTDZ^wY~GujYqk@RVhD-C-a~#0@A* zr?i8(ucnj))t~c@LuEs6yM+r?(k_s^#ixQ=FS_flj_B_jlhQUl0M zbLWXu@0@(cluLT=09qH=C_B26#EtWM5i~&YdhZ;)wkz7ET8F7N)sT_nxZ5rov4rdv z#(55_sDUcvRN`rp#jd_+g1&L3IDE1g$&!&XKSx?!o;krx%*eB$v(nRO3*SDfQSZi8 zCK~jeGr&kwl`_Vzq|rbBZi=?siCGExRo?w^5EYp-BAjkPLaGMh)6&RI$45JhPb4Ie z7DO$XkX{!=9nHMPCb+<76$3mjv>?Q&#YVJNzn~&mT-uE#pLwEB_$iXG6>KmBNznYO z&1z)z6X~d>!Lwr?{8K9J)*~BgS|OQmfy5^(bo(OSy@#Vfx^pBP(@0_6Bv;K|kJyQw zGZZx}cg~urf4YON2kl^iZpdUbiA$ktf21Ew?;928H0((?fl_4SnWium>y)k^g!o%ctLC&!z@?6Gt_r zqb^j-cb=W9n@)RC^_s5T!tk!%Vl>EM5&pE-tf6Htx<$=08kg5H?G}d0B@27`H28QS zS%);3{M=(c4L*G?F2FCDD%j7@CH(IA&E5LH&o6)>GV^=D1k3YBo3-4jmFMz%~W$`D?>$Uu!#l3xJ3SL5I+O)*)@$jWbkO~)b2=P$HKTpr%eYom0B!R|A)M&dPf;_@*0-13x&Klh9`JdZE; zIbdFa-vK8J{@?)Xia4(WI6^vQh0g&Lv)`{E2TWWE2YA-3oI(v}|L8+tKNi|Km^?I z)UUm0MKf}IV_5JFZ!3nEER}@^85pzM(eF!T(*k};! zP1(9zcG<4VFSp;r4|{HGe}yXrAIar^8)`582#riBeM)HXocUWP1-Di}$qBr=pDhXH z0S&vbs(olE*ei`Yhe2BA&O?a)iFJ2NXWejZcCTmWuHn4N;Sv*HFQfNOL-)R7Ur#&_ z?c0xMenl#t2Pz8j9KJu1U-dk_|3}WR$yo=Z6t_nf9=yMgdmjz}7b@BbRD2emFCIrK zinA7c`V^~byg>$<&6vAz^+)qzNaTVV8CV%Q&Rwe`g*h(=Tx)#vBdBrl0b;d2L&fy+ z8^k&vN*MB7^sZdDSJR}bXkTtG(EM2*Wlmj(v=A zoxypPN6~v81-U52fkc8>T!GX}E zHHE(?cYmUWS1r~K8^owbSB=z5aMeH_-6Q|`$pCUo@~2s??~pkdzK+K$UBtVdU7xN{ z_*PG^&)X`kJmgh$#&A0cV&Vfiwdwb#lTg<0KGO>UJMv6BMCzO~eNnyMJCn)F zUp-5kw?F$eh@0n9vVF&+9hjhg)xK74t{WYamzA5BoAlJA-0X=ootTrAJLk!qDOs|q z?%oI2FekGz#)>g=jMK7bW#v6RH><{O*Ss@b!r&FQVOTF}@@j$C~1 z?_vRWQeVs7#u$L{eT*bM8vp4>^Y-}vI5_`ETMJr)OlcfoYs9PrQOXnNzp!0boGb!R zt=x7Y!`8>(#0Ou-V&tt0aeRS{zL*hO0bC?-3owRYT!GT)AXqND_!MYUhaqI@XLMhTzR>>VztSG zmtW^|<)c?d;ltt1D;aGvTR2%8uusQG_8Gr`G!MKQhSHUAwZE<0yM9dOUCj?2Y}frZ z5@SnHPsE7hvgtCQehgnKr`AhTj{qm@CM)a1z@=vwgkUYsD#Zav0)ED%s2MySbJVWgAap<46HfCQh6(O8Ye>N6NA z{T5>+&HdCLG$nI$0}7E{$YVD{IyOY;n?4NL@gVfUlL3=g@^YTcnl@=xZWcA|?%S~< zt*vh1I4p+ZzYiv6wHcgD3Q)|x@#!^yJdNJ|Ymw?SG5ppKJCTMh}Wp)GLqKD0V1plyTo0)fx{r)Sg7=C^m zFHrxcsl|OCIvUo6iDlKa(zqS$Ym07~c{2a9sH=sCwYWkH{4FMK7CmI)&+;2Z$1OZ` z;H48l2mbcEAFkDZ0IM|O@Ox=y`IXiW?q=dBfsWrSq#Kk9vss|YsXtu m{zjIg<(BHDXeS$jY05naEd}F8E-OzqwWL4s*lk`q#{UDm&`X{G delta 8386 zcmaJ`30&0G_W#}A><*)Y8>{deBsLdtL)^KjXo5>>spXOjB%`?ishKrcq+sTDRV+!# zOwCBmA+tmsds>#5SlaWM3zqpb=}A8ShGzM`=l7c#sehmFwz#6!mc4I31KHh6Ake$Ap!}}SVNQ&q6r~v8sZf{MSzC5PpbqF zg;hh`CWOWQy^94j(lA#Dqb_675a$Tdh>z}d z=Fn@1Erd{ar&AHp{0+iD5*8q9B&+;9OhddXx>?(^b?&LwCUVnTt3A+hlA_}V9hW%4v*%}aG zsZjC~Kfx*DG-z_wy(UfuKGb5lx;*rtPN5C0c3YdakrUT0hqFmivIJM7oh$mqFx)yo`f)OwiBZ6`8?3ntNV^kaoqugPpv( z5W6_cB+;%#E3r2?gIyK+kWs8aj16fQUv^Oq2F?cPQ#k=?tgB86U{=1_Hm*IoI zwSF8rq3>1q=;)7S@HdNX-TQ|ns$|;2(B^r-egndwryIgB%JGKq5s@F;pKP)(c8z@R zWidQ1Z`e9buTc_b$T@?sW5SSwNxalMCPNX(C%~D}n4R|FP=}Y%rc-;|1qL}48*dRG zi4)>z5Py)LH?_*~9@PRA-T`eQV_S|_mD*G9U+v@@8Es}E0Us5mItDN zatCymGI<@gz}qMiKPow)%h_!@HQj~9>iK?TRDbEdn-CwE_3|H16M-dtQ4hW7VQC@lkUvQHCQ{ zFD175YZa@J{Rb6yOp1LFHWQOVY+jAXlwnH6;-uEBNW7b*up)O=QaHnAuXX6aYD8Ga z=X?KigFm@xW(Vwz4K-mMZ3tsJPeXXG_@-k|ijC%-7WO{;rzopz7)6M(iiR*|DsKpH z7GHN#XA1269jg_$Iy>1FF`>&~*Zrj)$)V$RhaM+1|BnU*0XcpPZ?=2BU$(`64cV%)P15(w!9&UVh_56aB zisyRmM_TLF`!{AOgvNPOe(Mdk?hM6Y|ybU7KOfV_ry~d{0X1B zzHq5VpK3E8D959jMrXn)@pRuXIC*j3&+#46FR_)%qzXWuhTQar6*l%u|7-u(|GyMt z?LUdmp#E`<_dPg@8LtqV`>Q^+J~Ksxrf2_c=2@SfF}e^Mp-NIcND06}3UH~aDCAID zxJaWx%o7^a4p^DG3RS6mg%@d1ds-SV61@lH*}S<`M=@C~4h+a})i0wYrO2uDkKfYN zrY%lD+QNc@f>|WMJ<={EelxF8Pov?D2hBqramC)yO6%|C6G}Ws;)Z z>ob34$SWm7+L~)f9GTaMV?)C11d#YtK(TaQC2kLiS4)jPL!VSBQ6kictwZ}bDp!In zftRCE)8{?P(uuqljSANY)3CFMlJADagl~R{X0<~gE7hV5odE101?@Hw{YV0eq@j;| z#J&}l;R@R;5{Bo(OWr{LusAS$5IZg`BlaUaJ{vKfRlOB6lHp*8eYDhklqAPtB91*8 z3)25SIx22EwAW5O7pSK?x}xKqom2!%ijLeQ8i+F@_pz>QyV(BN@CW%=KdKn#&azPh zqx}b_zfL0y+Z)tsI4oCD;QTs$bEY&7H3fo4llZoQPTjAJrC`I7>l0z$cyfurc z7~8frl>@R%Ed(GhYz}D&M}W(z2C&eLOTe=2$4wdHuSXCX{(6L$;;O-8_);{g>HWnC z1(5Fy9nBckCiZDjG8H#4eWj=w7Zg_cGPu6d%6{A-ljQ)al<4kp*xht|6q9e2isT6k z$!R~DkilRf!^Ek$CeE1HBlH{ub&{H?Y;z#!;$(A_4u$wB@sEkgP~_c-ub^mNG-(B^ z5J8g{HG9B7lyC@8?wTBd=}t^84?K6tJDp@R(NVHXES=&6|1VQIfFeF?q~#PX=wRF< z7G*^OwLdtVI(1lNg~l7j6vM-?&R#DlD~7?yCWnPJC(KGn&8&w-hn!Z( z2SanBt;DHeJ>rENC7@8djQ59YEEU^xV#bnK+EtuL)t*(M8=6B32(t1OpigsAVk@Fv zK|vwHz#|cYrcwgPOtWV5GuuyZH{_Ar>wwlKyeir{6Zz%uv^dZ~@N?cis%&SJMKKRn zEQ&58*VfX?uVM&c%k{HuW_}o=kWq=JR+Kt>p(Z-(OtJaql4vdwIqh@A%e86ajKqup z%AB5_N=x|GQS@3JuAm^+R?Yw;brni+R&O@MUeqWbA{B*~x|(U1Hk70sdQP?ZY7ghL=MS*F7n{_fozInskI zVVin#>sqmN#%u7Mn31qDMWmq>u6OQhd79)=3 z{5i&5gxDos$RF20#>@GeyfVrdTmH-pRxW;jhD7N+CmW3G=THJ@KKI!MJZ)YG7rW=q z0%hxYX`soTM>H4bZE5ARi489whz$ph2<;#8phs+ab`%o9-Dfj>vSrR+2KInO!Q#L3 zvwZT6f3A09uPZBtbmRq(*#6uUO?B!O)vLOQ1z{b$$!LJh#QkBfYD4u=6pyNAR4%V( zA{K;*mlkyMN$|-6(hf;5>G|j?!&9t54M`iC5JLi$lfp zi&Mh?+A?1EJh|9sfZ0WU1Dr1UlL5@dv0ei(xO7Uf&j94JSBl916PCaL?$t{sQ_)!e z%AsauTFUW0*V;=MFLPHdJH7?5Q=3)D%H)rz`a$Q$ReqvE-ZdqCH*tha63 zdsw0qVhN8ZXT2HbO~Un3GW^@Kv6+ElAEo+q}AV$7D) zm@RQ@PmE6Ankui}Ba*f%;>)cMu?qLCtt**azeg;7C(~N?AqtsY^s-RnzVJ>v8K+i2 z`B%8fUn~z{0W~`@s=hnae5@%`5sYTz$+KW=>EBUSJOcRDsY+ua$3;}&e=Qn&LR@v?O+K*+BSeJ;C=Q@a; zhq}YMJf*zOEOVLNBDY_bv=)+g4qq#amze2E+{mE!n#6@iw??qnNe6EXry|n&(c;%gN8m z%NGHcx;#=S*(I|iNlVc(wAne+v+|#vmDOEQq%zd=4%_$DmgQbJ)KC&Bq=+A7fM#K8K#maFKs0aY{c-FL?< z7iGH?4ya1(`98zaMrX&nuOu}WjV{NssiNcMjF58RB7vKVHW+O&@}!MmvG(#@&@}#G z!b2r`jZa+#V|lrg6Q}1)%FCaUm^EWg``kR>s>G@vdaz*kmp|-d4^?7W`cvX&<|$dZ zxifQ>cpt9DsBQYX*zxbamN=7LY6i+4;_kmA*)S1$bvcgC?N{^IND*b@rri{x|}UiU)qoXpz>)F0}yrD72)XvGYjsi0h%qW8JQ&S+;q{_lv^o zu8$M&i9vHI{^^pa!%9!}#Qvx}qkkt|wVtsfdVCD<+*G44c5 zo|Y*F-su!r4yYxdPtcM#WQwJCdRXcJwN;_&I~kVFA$HXtM~UdWtBl7gu&GWZKbu*E zID0n;XT#0A{X;f~YR2A)mgYN$jgg&-#jsyHIqHCI4Cr^X5L1%F?1+elRGWY88}FN= zA4X#^>O@P?my4Dp_s{9J-%Do38YCVo7w2yWx2*}+R(%YU$AQuZPXbI<$TXI{`+8JRvN$w=r-wO7ZOB$J2GCNShO)Rw0*=o?SwCCe78XgH@4eC01psZJ3DE!m diff --git a/lib/wasi-tests/wasitests/unstable/hello.wasm b/tests/wasi_test_resources/unstable/hello.wasm similarity index 100% rename from lib/wasi-tests/wasitests/unstable/hello.wasm rename to tests/wasi_test_resources/unstable/hello.wasm diff --git a/lib/wasi-tests/wasitests/unstable/isatty.wasm b/tests/wasi_test_resources/unstable/isatty.wasm similarity index 100% rename from lib/wasi-tests/wasitests/unstable/isatty.wasm rename to tests/wasi_test_resources/unstable/isatty.wasm diff --git a/lib/wasi-tests/wasitests/unstable/mapdir.wasm b/tests/wasi_test_resources/unstable/mapdir.wasm similarity index 100% rename from lib/wasi-tests/wasitests/unstable/mapdir.wasm rename to tests/wasi_test_resources/unstable/mapdir.wasm diff --git a/lib/wasi-tests/wasitests/unstable/path_link.wasm b/tests/wasi_test_resources/unstable/path_link.wasm similarity index 100% rename from lib/wasi-tests/wasitests/unstable/path_link.wasm rename to tests/wasi_test_resources/unstable/path_link.wasm diff --git a/lib/wasi-tests/wasitests/unstable/path_rename.wasm b/tests/wasi_test_resources/unstable/path_rename.wasm similarity index 100% rename from lib/wasi-tests/wasitests/unstable/path_rename.wasm rename to tests/wasi_test_resources/unstable/path_rename.wasm diff --git a/lib/wasi-tests/wasitests/unstable/path_symlink.wasm b/tests/wasi_test_resources/unstable/path_symlink.wasm similarity index 99% rename from lib/wasi-tests/wasitests/unstable/path_symlink.wasm rename to tests/wasi_test_resources/unstable/path_symlink.wasm index ffed50e3cee6425b3c806b46e093be7456b6a257..91cdff1cc47c72d27f38374150282d8b32fba12d 100755 GIT binary patch delta 21 dcmaF6l;!PGmJLbI*ut|j4a&{+a;5`0s@uI-80Y8$0DnXe%m4rY delta 42 scmaF%nC01HmWC~iKN;B)i-RpJlD7Y6WK>{+a;5`0s@uI-80Y8$0CSrUE&u=k diff --git a/lib/wasi-tests/wasitests/unstable/quine.wasm b/tests/wasi_test_resources/unstable/quine.wasm similarity index 58% rename from lib/wasi-tests/wasitests/unstable/quine.wasm rename to tests/wasi_test_resources/unstable/quine.wasm index bf21075995ad3af812d653eb07b9c86875dd873e..9ee913d52849a4fff601b9d23d252f8529136349 100755 GIT binary patch delta 8238 zcmaJ`3s_Xu_CNc~49qZ$4yo~$GovCX4;2FxOSUPf_}22~#Z1f0@eQQ@?Exw(nh$bQ zU|RXU-k|SNV~MHPsl26SH!5x)S@|yYipn+nE+)nQxAvJC$8I%#p1s%FYp=cDd!0k$ zcH_nE#@Y~r<={DwVl7tqL3anklZ@REtBrAZ{?!;0dE=}{Nl+Dy*$qQ%s+E7J*tapo z%5R91#?{Q}e!_IOiR~4|A>-I4_vazsvEpwwc@%E5Ut^(RR!!9y-?JGAGa>9cqKXi9 zLbTTrs|XQBh;}-nP_Q{3#(EB7suG)NwxK`U3fYS)+jtZ?i>5aFmOoCU$X1hur&q|0?&%)g61PDc9E{s1zk#QFQdb0VgU-hJ?*7el`$3A&lYc*>SfB&$weJ zBNGJdWRN#-C*vnXOXPKSTwIPC&~eK$NMqMbJi^6mN})hKQ^Y6XvEonBdF+VT89kAG zBU+=A6Pr)UfafgNn9T_o#4-#@C_~8mR`P6sYQ(r07rQPF#YD3$;;WectVVQ+0OCCpqt>3tSCdkY>&>_p~{(Nu_?(gE?QHjI0 zMCX0)u94E|hr`VK0sFlQU%e3s!&iR|gtrOSV+d5v?eQXO6eoL3i@m68=u|j!ab-Ak zCJcof8E|sXm~bzJ%^+8JF;>)Utd;k4CO3iBKGw=<)KuC-)bfFH29{1@WYrX#$}fsj zJ>%~G)jC#DyEIoc;`e>NAZcQ}-^w}A#~V-% zM$zRDHL9&wllq#QR^r5P{*CC7+~*IyvnV-z;6d_tX@ARB<6Jnv&D*DqTf|Xt1UXGGwS7u~Z{^r*vj}#F&(HRx4Jej5nX( zfL-alL7Yv=V^tz0^`i+bFe_rx#yHJ5gZtHNUXFR9L2;S}6_10a1Zt*1>}jMDMr9nx zOUa7w&|OlGgLww`V35MMh!MS3$E_*@HdXq7Z}D0DwqouZy+RmruC4b2=A%R!!|OzT zpPs*MVwu2qnE3TR-2)Qg+ddICuSry@BP~Kr>%z{9_%w~3cju+e}MaO8{bSMmv-OB59=q^AA>pizA+gbUG zx7Tb|zFLQDpbWM0ThDnE+^qb2jNsh~SU_LvkQI={%0JMdd|EVH`5U)MgRT4}9SX-< zkd?33p-@03D_@~Q7C=TE1toDr2p|Iv)FI-D{-aT-{raNe$msVr?u4uTMw+Pn+&l11 z8vZlz7;6;=vJX+UTEh3M=F?PB@8b0$YjA9Pzk{pDk}KRZ2H(pf0&1!(p56f7BMuHp zMeH{XsX@uxloL1HUs_3EKcFf61}<>alrWT)7JWJd6}MHNMrn$DGm;Lr_UEKfbNi+4 zJn66HH1#FUR?NZ72?UjI46~@*?-Z`wXxsuTbC2OUW@swgDN2TR42a;DhYtDe&^P{1 zbukZ{1}3wHCA6zVKKtXgTx=Ugad~pstAAK;s)px@qDOirBZt4yrFFn*G}X|-DEzb+ zX_7O&_%@2Hyh59|SQ;q9YQ%xOJWB&^`gHUx+2Z8z@Q|e?B_;Fef;=vIjfhG-sx!hl zG?Vom(6nM9A#PD!Q4NO-vF_x|pX%8f#tC{@3ezs49Kd7+^k@;W&oL-Ij zR&o5n;q0#>eB$4cNMBBz!uGh+|HMeo%!js^t4L3USBY;PqVB^uX=1`pKqbo>Pcs>+ z(6+COI#xw9P*c+th`nO@qzv|xI525kKw#ee=Q8BctA8HamFh1{7tmUf!|eg>6|O#O zel|+&i2R7SI-T69@?yIE2_(CcXVq-(5zF&aQI6gDDM7S^>VF}>E4wH{Cp*-&uZYyi z8nhcTxf1Dnaq=6WeCgq(n8!?+jQNr&8R)#;oYI}07AK}?L8mLhp?TvYMH7CnWuqgg zWuR=j=#>nrpfwqR7J}LgsAe;up+GVy4)iEMc{>kr^pT`4bla=N@}8GQ2iBWg#Ga~Ky7}! zTrE8%l4q>wQ*+9rxMcJvsAeZz&vz2WX~?k!X#msJP~gli*`0=NN5_?dm6TgE4MQxIc|lb(jYN5=5ZavR zL_+EgtDu>TZJf^y1?j3$qt_va5*lsAd5_KMnn4_OYAGgEr@Uu)xzcCeeN=-Q^mk~y zKckyFJSSc%CW8rziT}*$5OW$7gNmv0HPWo4q!fwaQ3%l>w7GX%F9NOas1tl{s%0&g;*GiYqNlz#H`BjOk=y#tJBCL7mwA(eXfqOM z>inGS8k*7r`!%E9CTj|>)iHV4NK@%xtC~&!{HLi{JSZ;APb^;RJs&b_NQu$WbcYd= zLIfQj<%fsZpew~^2b$3W-vSa@=lNEec@0M^M?oVEV4zD;#vw*M`gBk6T5NGiw}}l4 zvZAYq!+C6jBE&(uSI#QLcMEdVGK6$Nm$AP|ChsvB1=6pohI=9bQGhH(e0#N{K)S6H z^fbBBZ^ey<`0Tu$7TnrW7kaYo6Y+fp}@Xj$m!+yrTOFNi`tq09$)6y*qoc*de}L9Hl% zyj5&ivqTgJ+-7C6Ei@W}B4utHmL<%{4$#m?kT_P($kEa#~ zY|CC2BR+g;J}LC{AP_zEv?TiR>0RpDQ)0_AQSivVXC_iPus@sU6K3kO>p|;S6CupS z)BOS!72n&=n?RZ=2j!t$94>xLx1fBJ^jWZ^B%-e>)kTQq+Jd1fRFa-08^{^@K4}lR z(Pxj6lCeG!HY|z|*GlGj#aOiTVZRvPERDC(R>@nMvHh}yJ5;{I$=8-Gg7!0(_a%3} zynK9TnM?El16(ljeOE)j#H^6%h-g!&do-d6r@hi2psT;x>I%4({82jk7|Gv(hhywM%rcxWgs z%W8`ki5(0dOzC|Bp9?7CNJquGPi4WyT@<|!{E<0EAL3#rDSI(z}YIG%6Ght&s(`W@3WP?4#sI9#&?rC zv2iB{O~cMPYE!KU+no%9EZFr5S|0oE6l@r{djKnUKfSxj5Oj$4wTZc}{R`{{R}aAI z(&}vVZ-c8H;#_q%R^hhPJkM~iZGL^EwPYU}qJ#7;!Q=kn^<))opriJ4cF}#KHj-IA zf5WQ$($FX(-W&y1Gv0g`VR-7?WAb^om~=kQ{l0q?OFNHaA*|6}2WBy-unB4ezd^EC zQEg+W_rd4Yuzpeh9q$i;wwK=TTzvcsZ&Imql2Yod94Hy?qp|Pe+P6r5P~#@g}kM$t&J_fJ$L-b>a=YhkHWj~ z3pDIzeBFB(s|@xZnFF`8%n;rT7Ce!^cL2jKm0u8L|5ylDJI=(3&L8}pU2=c>!4;ML zEIvM_;bo)gSfqLNevmTFARP6bg!7~B@Y(Q>9`9JSOqwkWFFy)Ccqgd6_$~L5k5=P5 zsC(2Wv1*6qv=2QtLV}tDg)iGLp8fPs!7>t7?HAvEIzU~qUqsha6g*tN5dQyH{nKjM zelh+thxy{0@>C|;pNkcnK8uB`_kDIhL-yVJd?B6%U(8|~#mO%mY~#j;hcKPg&>hcZ z4GHX!ySibPF=&mHTfEU2?;iA3ut`_aJ@X`(c*N_coJf%RQ+;h`zQsZK;{&}4ctqIg zj#Xzc5oL(zguJKy$<1?vh*-6oQCR1x521fWaAS=iOXcZ`F z>cxb!_o{363vqTVsr&s|2eQ(9?n`hAOgzon^iWSU0%&)wXT*y0izAAr7Zw$!E}B|6 za|%tT6ihFi_hiAN(}n4~ZkAfbuF$Vmq5Ib1>x(R=c6Oy7Hr*#ax!#jKB5q#K!>jp_AF|kW z_tGCe3PQ0P@zW?gH~*AtnR2&XLAohJ#pR!J&4&P?eW@4yZ$+V=J#cGa7@_E=h3g7v zV%M!K%K$(cu=(QBtz1V5Ao6H6MpAYOG^NqEw_1#C?O^di&0sv>K4UVuY zK_DHDkwPa)Txm@UTMOuJK-)2rtCK|UpR+9WfRZHikg7g z{P)4MMGJs?U>>+mCZ+^XV)x-Ho?v3{Rem4DUWz>V0g~BxJ-7saQ@*Ot!b{sgCr0_#DF(s!cN-91-5@6`nyAM9c(lj&;tniVOeti|b`4d{c2Y-Cz zbu=|+WGYH#W@bNyulgroe8<3#Df~r(CU}D9HUq9~v#`wV340^7W@kl9DZBjYjD+CZEe9MwSs$6%D$bDcF(J?-b+|C yi3+HL@up4q&q6$H(PUrzTH0%SoOWe6O}irKK-#jeLnuo(wJ$#jT8o!XVgC>E3rH3K delta 8226 zcmaJ`3tUvy)<65q49qZ$3_jv5XGTTv0V)XiDA|~x;#C1}L63tuMRU{ub$`{w{6Vvqm*Euue*!4F4ID4zc6-D6zF5|d`}-8aq)bW6fa8(v+DX-WHbLlvTk9L znO_vO`U2L}{j%XP1KTE?LBm*q`$W(s<~+K-O5zslbru|IR%C_ol8rzZ31QU``Gl|% zB1A*n+5ki-A)082dP0N{!lEI*^HBtAh$DmuCJM8L_&-9Jtk<0^I7q|nCX9NFNki-; zL=f#UYKV=5P(=;Y5NmxD0UBZ{A=G0G8saz7&P+V?8sY{aRPA&sqBZ}CFpz`=%Nj|o zZx7QDr^RVYBD?4|HVKiNRuxrAsd6Vp$62b}0Yjxb!5TtgvrgIDNzwrI00mk(Qe~^Q>|=#v%Rz*rB5@W3_YiERod!*=17c?LxEB9V zrGpt%4%$kcyR3P8Ir02z1eGMEN|J{D9&myrrKzyd!B6oYh3nJi5w1v7-acO}OHs8kG#cCho}crPApN5caV)vNx-hz+{zga5I$DRl7 zGo>vn6jv1m&nC9_Gk*eyj*`>|%t|!QHd&o1dLERO3eH5qrS7UB*+6{;?8~ND^t^E` z@UgsJF#B_U$GmKxNuqvl-xc*IdW&~jO#qoYpmn^AuuO^@4O`K3kNZ;GM>28Pl3;)0 z{pG53+Tk$sdw_jjg|D{w!|>I5e|W86?fO9F>~?RmYEj#6Ld+>mL%YP8gG>FPGhry? z$be(pM~8VREIM_CJFy~XV6Cvdz2h0sT8ElBjfzZrh+2K1oPnjC7?~BxBJ)$?T>IGG ze^|#VYM0_@jqM?DH^omlFi@=A6F+9uK~G$%_)@_;g#UM+&+0HT&S&K;=;H|}8>8s* zg&Nh?YaLRIXO`i_Fn(0D>)7Q_y)&<4YOhmNQe${E25S$9<%=W@RwPBAD)+^}xRl*p z8o&=g2i{(hc(vp}SX}9t-1H_6OqHKhq)c6!+#E}#qH|(PRw9NZrn1fA^~B-ElWVXm zl^+u46LVO;NK86Bq8?^NOj;PH8E0_6oWWg~C+H-*A=5bwni8lOGTB0;5=Lnl$Zsxz zY#-5GQuR7Ertu04s_^wb{uLnU#w-Q(k>y z>n2|T(>xE@6Y6SND)NWHZlyn*Cx&+IiBMnNb#br4Kjcile@-B0T>dZ^H5T{|l6gac z7@XPzoK~b>V3lGA2OV#~sW+(x6a4Rx{tJK}`W6tVf=lm-O>(&0c2BA)0!s)gJw1r0}9x4pO%u5}w|pz`y0uiZ5K ztJjz8irAm=F;%Mt{6pDTLlw0tuM$0;j0y2MxP&a3=brTB<1E~-rmDr$6Tl_nK%XSU z{*^xED0%C%V*C3_D+%la6p3HN1&*2$in3C#P5YqYUeTtJie%l0q=T(}IVt4qZb?P8 zzFJOGZ{ieU4rX>BsC;9XLgl_lII^Q~3oOh263-!hlUR{(^=c^&!ei(8l2(vRY@w%^--T5n4F=ZNM5nr5k2*-?_6N-3REtqG6hCN$Kr z!J9Ny(Ar46#)CAdGp#CDiyk?1ES@T=qtq)E`*U*I9YPC`ie@H*{_#E9PVG`AAajw+ z<(f%%=>gGcKx9ItMu3xPrd|c89O(|+j|a3RyVS=bArR&a=pUxic(&jwAn6fWmF|-R zmNH!CqX%`t)wXKT4kp*H7E}8vEvStRbnyQ$S2OYIkOb9a-Q0CUK4mDA+lF;W-b^yc zoCfkGQ_urtMX5K6B4=9+icVc41a&|xigY54Wg~IJJ-=CeFua#7pYHQ^ zys^+zGOID+NxaevZx$^^e6Oa&h&C||xVxxPV?2mDOo)SyF;z~-cypOZekuVC(AcLw zWbcZwrxlhb(x0A<_$b4?P#k@_KU*)tM*a;s_wC4Wti+xA3?n_$N0l1$Nl%IAi!-CB zQPGbc8UHg-9o6fAW@=PJ+Y|>ix00fx{--q%+r*O5Y3ygQfAlcF7=G;8e5Bml&-QIi zr5dL5>%z$4R=-XRx1@PY2CDLaG2yX0HFCSmozy50NOmR9${D;uEE$u8%IzML7(h$7 zD1IE%nw=8CV{P)?w?xud1=gPMOq8nd!s&~Dr zonIHgoenioMcDXuFmLAgiOIg616fh-y8-J3&W{5_kL!IMh?+a!kB^MVr(T?1Nwf|< zm|hC#9U)&>CPc78ciRbe#;QdB7Z#(0e)Ylt2BSw#d>N&4$;2MGQV&iHM|n9lF;#A; z71o!Q1GVv`LiuK`=s0O7E6Fm_#*B>>^9OO=CxGdk2xEf|IW zinutbylLqVo^6sPkS+(Xe&^-MU>!WUGfsYD@(7d4$HurzY@8fRg?w^{U>A5R2D0GI zTK6xL!|BQoo-&^#TQ=oo&lU+=ZcU*rVN*R@%-R+)c=b-@l4ToU@`Db_l!{lUM@H@h2Fb_uvn)nV3V4^x#rxAAM_+w?db)3$q;5-@ z@g$}=eBy8t+n@+>P~EG}^2DWCS#l#ndUmU!k0evCEHw&Lzsd?O zfOtd!vJ~;{(T)P?flkmTi!HO)GneQwX8;OF{+yy09(jT$2t-r@AsnhP8ooUc zHbEw@116)Wfbo%*B3e+G6`ns;uSUWn`(7PM z<-qz{j#rrRudN2HZF#sbIw$%B%5^^8#G|}o$U=E=iG$7;H4Cb5lU@tDT;VCQsxCq- z+Y$&>p_1xZvVl57@2A>B-RQN4%Qe(1!kT&E;<{^wM~r!kp7V)uW>K7lwyL~UGlndV ze@NwroP2%pJZL{@Nea31ttG=-s<}iDFu(<)zVj+*gqRsJ?Ga7#BGB%{=S^W}L{Z*k zpT_zulqr`mFP)CsuwdzM%9CSD6-|Ae65z0_es8Q@w=9ax8MExrLxoygUDnO3T!+`m z*?V4p;Ox%%U%(T$^M}yZoPxey%Jl_AXh<48xzyiaC<&Q=mvrq~Uw(Vl4h zh>_D4C}${)n%_EcNYvoOH;NL`(Htt8jCtZ49q}P@%o|DifSvdX%nQZZ_07;6Y+s*% zj_%m{1XJPLRVdYFzRk@xTr@^kltC65MaNo&{({p75_5!l?V+h-TU&s0*w*>zC@#@L3483H2F-02;I>U2AQ>e6IveYjznzewWB93{t@*gaX+6RV5LGSHYkS!NR#%G$6zx2b$B!@ag~*FbZ_UNl4p=zBti z`%%T=rQ7}C5(7Ie(hk1F%EYFFX?T8n@MAoSs-D2}o2oTUgymrSil(b5`L;Ff2klP_-=Itbz!4vNNxG2&(aiAdPM= zZ@hp1KAVMm?&zU{F3n8N%zpf+z6Z`!Q^n`FA4! zv$=4!?T1*=^7Fs3)9$mMUzOQaapX${ZxL6%j4<9N&oMs_00SqPmqT%jF*H9r+~Z|JatLhzmdF zM9kM&rC8unFot6+&`~%57TNXlKy$EuT$>m4+CKFZtj(GILekX96XxW;m^5+v+{D>) zfGZKbf9iq2asITQwaLdp^i$$z%uy!Jo;_o>lHkRa2UsOD*7k{UmwTIT0%`^*P?TMc zWzpiu$$br4b4hU0tSjB7b9ngm&;7TDbi zBbjH+d=mWFwMbk5KVQo<<$Bf&MAz%i2))@V89^0{F$7~2MrbRw5?@^($udNn24QFb zu8UaI5GlTEXo0h?Hne5WyIcG#n?4PUy)n=9tHmmH!=^-W_C|X)M3{cb!8`U-zw}_| z-D`h29Dw3B=C?t3mi?A(8vK}5LV8K*;?8f`#$AAL3F8IzP9*Br#5=u02}M6^n5KYL zd~m0SsRJMd*a719oow4oK;+Sl7)jX$(3D2+-i>1X-DV~)R3~1&8!O)o6PxZ13QY;O zN&z74j*&tqTKs-DIdmbQ#{jLvNUn|+{P!NFDnK1nXzA}cCVhleY6YmRIQ{!Nwoy#I z*Bv$b-Ftl^aw9eWIWZEKa;QMIA0-U;lWkSNHUacCMm@$87)iwkRHN?qPVn+*9%Yr{ zu-Y9Xc_tGh$?Kzbe|A3=$^OP&7GtZ3)((6ceB(jng(mUfpdotS7RE*x*zV&04`3T2zWyA^tG^NG!v7=JYV%mBm&7j@ zzZb}2*s9_$0@=CHtJRs*Cp-*>vmmF9}WNkr8UVu(+#f8mNU}+kh3|9ECNxu|{ulS0VyW&3_ z`A(V|)6x-a>FM1hev9A$g$S9%mwgRrL{;GQ2EfH3L2NL)R6H(-CC0sZj9A>>jy7sL zO#@v$D = instance - .func("_start") + .exports + .get("_start") .map_err(|e| format!("{:?}", e)) .expect("start function in wasi module"); diff --git a/lib/wasi-tests/tests/wasitests/mod.rs b/tests/wasitests/mod.rs similarity index 95% rename from lib/wasi-tests/tests/wasitests/mod.rs rename to tests/wasitests/mod.rs index 8a3c6b27d40..e3fafa6218b 100644 --- a/lib/wasi-tests/tests/wasitests/mod.rs +++ b/tests/wasitests/mod.rs @@ -1,6 +1,6 @@ // !!! THIS IS A GENERATED FILE !!! // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). +// Files autogenerated with cargo build. // The _common module is not autogenerated. It provides common macros for the wasitests #[macro_use] diff --git a/tests/wasitests/snapshot1_close_preopen_fd.rs b/tests/wasitests/snapshot1_close_preopen_fd.rs new file mode 100644 index 00000000000..b44a3375fd1 --- /dev/null +++ b/tests/wasitests/snapshot1_close_preopen_fd.rs @@ -0,0 +1,17 @@ +// !!! THIS IS A GENERATED FILE !!! +// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME +// Files autogenerated with cargo build. + + +#[test] +#[ignore] +fn test_snapshot1_close_preopen_fd() { + assert_wasi_output!( + "../wasi_test_resources/snapshot1/close_preopen_fd.wasm", + "snapshot1_close_preopen_fd", + vec![], + vec![("hamlet".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),], + vec![], + "../wasi_test_resources/close_preopen_fd.out" + ); +} diff --git a/lib/wasi-tests/tests/wasitests/snapshot1_create_dir.rs b/tests/wasitests/snapshot1_create_dir.rs similarity index 63% rename from lib/wasi-tests/tests/wasitests/snapshot1_create_dir.rs rename to tests/wasitests/snapshot1_create_dir.rs index 629f7a220e3..b55905356be 100644 --- a/lib/wasi-tests/tests/wasitests/snapshot1_create_dir.rs +++ b/tests/wasitests/snapshot1_create_dir.rs @@ -1,15 +1,16 @@ // !!! THIS IS A GENERATED FILE !!! // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). +// Files autogenerated with cargo build. + #[test] fn test_snapshot1_create_dir() { assert_wasi_output!( - "../../wasitests/snapshot1/create_dir.wasm", + "../wasi_test_resources/snapshot1/create_dir.wasm", "snapshot1_create_dir", vec![std::path::PathBuf::from("."),], vec![], vec![], - "../../wasitests/create_dir.out" + "../wasi_test_resources/create_dir.out" ); } diff --git a/lib/wasi-tests/tests/wasitests/snapshot1_envvar.rs b/tests/wasitests/snapshot1_envvar.rs similarity index 51% rename from lib/wasi-tests/tests/wasitests/snapshot1_envvar.rs rename to tests/wasitests/snapshot1_envvar.rs index dbac0d47106..dc32954eb14 100644 --- a/lib/wasi-tests/tests/wasitests/snapshot1_envvar.rs +++ b/tests/wasitests/snapshot1_envvar.rs @@ -1,15 +1,16 @@ // !!! THIS IS A GENERATED FILE !!! // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). +// Files autogenerated with cargo build. + #[test] fn test_snapshot1_envvar() { assert_wasi_output!( - "../../wasitests/snapshot1/envvar.wasm", + "../wasi_test_resources/snapshot1/envvar.wasm", "snapshot1_envvar", vec![], vec![], - vec!["DOG=1".to_string(), "CAT=2".to_string(),], - "../../wasitests/envvar.out" + vec!["DOG=1".to_string(),"CAT=2".to_string(),], + "../wasi_test_resources/envvar.out" ); } diff --git a/tests/wasitests/snapshot1_fd_allocate.rs b/tests/wasitests/snapshot1_fd_allocate.rs new file mode 100644 index 00000000000..a9a86b11ced --- /dev/null +++ b/tests/wasitests/snapshot1_fd_allocate.rs @@ -0,0 +1,17 @@ +// !!! THIS IS A GENERATED FILE !!! +// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME +// Files autogenerated with cargo build. + + +#[test] +#[ignore] +fn test_snapshot1_fd_allocate() { + assert_wasi_output!( + "../wasi_test_resources/snapshot1/fd_allocate.wasm", + "snapshot1_fd_allocate", + vec![], + vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp")),], + vec![], + "../wasi_test_resources/fd_allocate.out" + ); +} diff --git a/tests/wasitests/snapshot1_fd_append.rs b/tests/wasitests/snapshot1_fd_append.rs new file mode 100644 index 00000000000..645da14ed5c --- /dev/null +++ b/tests/wasitests/snapshot1_fd_append.rs @@ -0,0 +1,16 @@ +// !!! THIS IS A GENERATED FILE !!! +// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME +// Files autogenerated with cargo build. + + +#[test] +fn test_snapshot1_fd_append() { + assert_wasi_output!( + "../wasi_test_resources/snapshot1/fd_append.wasm", + "snapshot1_fd_append", + vec![], + vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp")),], + vec![], + "../wasi_test_resources/fd_append.out" + ); +} diff --git a/tests/wasitests/snapshot1_fd_close.rs b/tests/wasitests/snapshot1_fd_close.rs new file mode 100644 index 00000000000..32a46a98f7b --- /dev/null +++ b/tests/wasitests/snapshot1_fd_close.rs @@ -0,0 +1,17 @@ +// !!! THIS IS A GENERATED FILE !!! +// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME +// Files autogenerated with cargo build. + + +#[test] +#[ignore] +fn test_snapshot1_fd_close() { + assert_wasi_output!( + "../wasi_test_resources/snapshot1/fd_close.wasm", + "snapshot1_fd_close", + vec![], + vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),], + vec![], + "../wasi_test_resources/fd_close.out" + ); +} diff --git a/tests/wasitests/snapshot1_fd_pread.rs b/tests/wasitests/snapshot1_fd_pread.rs new file mode 100644 index 00000000000..95dcf7d9893 --- /dev/null +++ b/tests/wasitests/snapshot1_fd_pread.rs @@ -0,0 +1,17 @@ +// !!! THIS IS A GENERATED FILE !!! +// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME +// Files autogenerated with cargo build. + + +#[test] +#[ignore] +fn test_snapshot1_fd_pread() { + assert_wasi_output!( + "../wasi_test_resources/snapshot1/fd_pread.wasm", + "snapshot1_fd_pread", + vec![], + vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),], + vec![], + "../wasi_test_resources/fd_pread.out" + ); +} diff --git a/tests/wasitests/snapshot1_fd_read.rs b/tests/wasitests/snapshot1_fd_read.rs new file mode 100644 index 00000000000..eb6ef923bb7 --- /dev/null +++ b/tests/wasitests/snapshot1_fd_read.rs @@ -0,0 +1,17 @@ +// !!! THIS IS A GENERATED FILE !!! +// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME +// Files autogenerated with cargo build. + + +#[test] +#[ignore] +fn test_snapshot1_fd_read() { + assert_wasi_output!( + "../wasi_test_resources/snapshot1/fd_read.wasm", + "snapshot1_fd_read", + vec![], + vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),], + vec![], + "../wasi_test_resources/fd_read.out" + ); +} diff --git a/tests/wasitests/snapshot1_fd_sync.rs b/tests/wasitests/snapshot1_fd_sync.rs new file mode 100644 index 00000000000..07a7b0a3255 --- /dev/null +++ b/tests/wasitests/snapshot1_fd_sync.rs @@ -0,0 +1,16 @@ +// !!! THIS IS A GENERATED FILE !!! +// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME +// Files autogenerated with cargo build. + + +#[test] +fn test_snapshot1_fd_sync() { + assert_wasi_output!( + "../wasi_test_resources/snapshot1/fd_sync.wasm", + "snapshot1_fd_sync", + vec![], + vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp")),], + vec![], + "../wasi_test_resources/fd_sync.out" + ); +} diff --git a/lib/wasi-tests/tests/wasitests/snapshot1_file_metadata.rs b/tests/wasitests/snapshot1_file_metadata.rs similarity index 63% rename from lib/wasi-tests/tests/wasitests/snapshot1_file_metadata.rs rename to tests/wasitests/snapshot1_file_metadata.rs index b26b5cc44d0..2793d3e1200 100644 --- a/lib/wasi-tests/tests/wasitests/snapshot1_file_metadata.rs +++ b/tests/wasitests/snapshot1_file_metadata.rs @@ -1,15 +1,16 @@ // !!! THIS IS A GENERATED FILE !!! // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). +// Files autogenerated with cargo build. + #[test] fn test_snapshot1_file_metadata() { assert_wasi_output!( - "../../wasitests/snapshot1/file_metadata.wasm", + "../wasi_test_resources/snapshot1/file_metadata.wasm", "snapshot1_file_metadata", vec![std::path::PathBuf::from("."),], vec![], vec![], - "../../wasitests/file_metadata.out" + "../wasi_test_resources/file_metadata.out" ); } diff --git a/lib/wasi-tests/tests/wasitests/snapshot1_fs_sandbox_test.rs b/tests/wasitests/snapshot1_fs_sandbox_test.rs similarity index 60% rename from lib/wasi-tests/tests/wasitests/snapshot1_fs_sandbox_test.rs rename to tests/wasitests/snapshot1_fs_sandbox_test.rs index c95842a1fd4..600ba1b5d39 100644 --- a/lib/wasi-tests/tests/wasitests/snapshot1_fs_sandbox_test.rs +++ b/tests/wasitests/snapshot1_fs_sandbox_test.rs @@ -1,15 +1,16 @@ // !!! THIS IS A GENERATED FILE !!! // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). +// Files autogenerated with cargo build. + #[test] fn test_snapshot1_fs_sandbox_test() { assert_wasi_output!( - "../../wasitests/snapshot1/fs_sandbox_test.wasm", + "../wasi_test_resources/snapshot1/fs_sandbox_test.wasm", "snapshot1_fs_sandbox_test", vec![], vec![], vec![], - "../../wasitests/fs_sandbox_test.out" + "../wasi_test_resources/fs_sandbox_test.out" ); } diff --git a/tests/wasitests/snapshot1_fseek.rs b/tests/wasitests/snapshot1_fseek.rs new file mode 100644 index 00000000000..58d2838ccf4 --- /dev/null +++ b/tests/wasitests/snapshot1_fseek.rs @@ -0,0 +1,16 @@ +// !!! THIS IS A GENERATED FILE !!! +// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME +// Files autogenerated with cargo build. + + +#[test] +fn test_snapshot1_fseek() { + assert_wasi_output!( + "../wasi_test_resources/snapshot1/fseek.wasm", + "snapshot1_fseek", + vec![], + vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),], + vec![], + "../wasi_test_resources/fseek.out" + ); +} diff --git a/lib/wasi-tests/tests/wasitests/snapshot1_hello.rs b/tests/wasitests/snapshot1_hello.rs similarity index 61% rename from lib/wasi-tests/tests/wasitests/snapshot1_hello.rs rename to tests/wasitests/snapshot1_hello.rs index af895a2c765..0e869db1594 100644 --- a/lib/wasi-tests/tests/wasitests/snapshot1_hello.rs +++ b/tests/wasitests/snapshot1_hello.rs @@ -1,15 +1,16 @@ // !!! THIS IS A GENERATED FILE !!! // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). +// Files autogenerated with cargo build. + #[test] fn test_snapshot1_hello() { assert_wasi_output!( - "../../wasitests/snapshot1/hello.wasm", + "../wasi_test_resources/snapshot1/hello.wasm", "snapshot1_hello", vec![], vec![], vec![], - "../../wasitests/hello.out" + "../wasi_test_resources/hello.out" ); } diff --git a/lib/wasi-tests/tests/wasitests/snapshot1_isatty.rs b/tests/wasitests/snapshot1_isatty.rs similarity index 61% rename from lib/wasi-tests/tests/wasitests/snapshot1_isatty.rs rename to tests/wasitests/snapshot1_isatty.rs index 17cdf11aee9..b5d888706c7 100644 --- a/lib/wasi-tests/tests/wasitests/snapshot1_isatty.rs +++ b/tests/wasitests/snapshot1_isatty.rs @@ -1,15 +1,16 @@ // !!! THIS IS A GENERATED FILE !!! // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). +// Files autogenerated with cargo build. + #[test] fn test_snapshot1_isatty() { assert_wasi_output!( - "../../wasitests/snapshot1/isatty.wasm", + "../wasi_test_resources/snapshot1/isatty.wasm", "snapshot1_isatty", vec![], vec![], vec![], - "../../wasitests/isatty.out" + "../wasi_test_resources/isatty.out" ); } diff --git a/tests/wasitests/snapshot1_mapdir.rs b/tests/wasitests/snapshot1_mapdir.rs new file mode 100644 index 00000000000..e20c240da18 --- /dev/null +++ b/tests/wasitests/snapshot1_mapdir.rs @@ -0,0 +1,16 @@ +// !!! THIS IS A GENERATED FILE !!! +// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME +// Files autogenerated with cargo build. + + +#[test] +fn test_snapshot1_mapdir() { + assert_wasi_output!( + "../wasi_test_resources/snapshot1/mapdir.wasm", + "snapshot1_mapdir", + vec![], + vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),], + vec![], + "../wasi_test_resources/mapdir.out" + ); +} diff --git a/tests/wasitests/snapshot1_path_link.rs b/tests/wasitests/snapshot1_path_link.rs new file mode 100644 index 00000000000..cf958cbdb32 --- /dev/null +++ b/tests/wasitests/snapshot1_path_link.rs @@ -0,0 +1,16 @@ +// !!! THIS IS A GENERATED FILE !!! +// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME +// Files autogenerated with cargo build. + + +#[test] +fn test_snapshot1_path_link() { + assert_wasi_output!( + "../wasi_test_resources/snapshot1/path_link.wasm", + "snapshot1_path_link", + vec![], + vec![("act5".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act5")),("temp".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp")),], + vec![], + "../wasi_test_resources/path_link.out" + ); +} diff --git a/tests/wasitests/snapshot1_path_rename.rs b/tests/wasitests/snapshot1_path_rename.rs new file mode 100644 index 00000000000..1fc705c23af --- /dev/null +++ b/tests/wasitests/snapshot1_path_rename.rs @@ -0,0 +1,16 @@ +// !!! THIS IS A GENERATED FILE !!! +// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME +// Files autogenerated with cargo build. + + +#[test] +fn test_snapshot1_path_rename() { + assert_wasi_output!( + "../wasi_test_resources/snapshot1/path_rename.wasm", + "snapshot1_path_rename", + vec![], + vec![("temp".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp")),], + vec![], + "../wasi_test_resources/path_rename.out" + ); +} diff --git a/tests/wasitests/snapshot1_path_symlink.rs b/tests/wasitests/snapshot1_path_symlink.rs new file mode 100644 index 00000000000..e8837c0e393 --- /dev/null +++ b/tests/wasitests/snapshot1_path_symlink.rs @@ -0,0 +1,16 @@ +// !!! THIS IS A GENERATED FILE !!! +// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME +// Files autogenerated with cargo build. + + +#[test] +fn test_snapshot1_path_symlink() { + assert_wasi_output!( + "../wasi_test_resources/snapshot1/path_symlink.wasm", + "snapshot1_path_symlink", + vec![], + vec![("temp".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp")),("hamlet".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),], + vec![], + "../wasi_test_resources/path_symlink.out" + ); +} diff --git a/tests/wasitests/snapshot1_poll_oneoff.rs b/tests/wasitests/snapshot1_poll_oneoff.rs new file mode 100644 index 00000000000..c51b56469c4 --- /dev/null +++ b/tests/wasitests/snapshot1_poll_oneoff.rs @@ -0,0 +1,17 @@ +// !!! THIS IS A GENERATED FILE !!! +// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME +// Files autogenerated with cargo build. + + +#[test] +#[ignore] +fn test_snapshot1_poll_oneoff() { + assert_wasi_output!( + "../wasi_test_resources/snapshot1/poll_oneoff.wasm", + "snapshot1_poll_oneoff", + vec![], + vec![("hamlet".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),("temp".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp")),], + vec![], + "../wasi_test_resources/poll_oneoff.out" + ); +} diff --git a/lib/wasi-tests/tests/wasitests/snapshot1_quine.rs b/tests/wasitests/snapshot1_quine.rs similarity index 64% rename from lib/wasi-tests/tests/wasitests/snapshot1_quine.rs rename to tests/wasitests/snapshot1_quine.rs index 71366923e4a..8389e6f1bff 100644 --- a/lib/wasi-tests/tests/wasitests/snapshot1_quine.rs +++ b/tests/wasitests/snapshot1_quine.rs @@ -1,15 +1,16 @@ // !!! THIS IS A GENERATED FILE !!! // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). +// Files autogenerated with cargo build. + #[test] fn test_snapshot1_quine() { assert_wasi_output!( - "../../wasitests/snapshot1/quine.wasm", + "../wasi_test_resources/snapshot1/quine.wasm", "snapshot1_quine", vec![std::path::PathBuf::from("."),], vec![], vec![], - "../../wasitests/quine.out" + "../wasi_test_resources/quine.out" ); } diff --git a/tests/wasitests/snapshot1_readlink.rs b/tests/wasitests/snapshot1_readlink.rs new file mode 100644 index 00000000000..4655b19f4c0 --- /dev/null +++ b/tests/wasitests/snapshot1_readlink.rs @@ -0,0 +1,16 @@ +// !!! THIS IS A GENERATED FILE !!! +// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME +// Files autogenerated with cargo build. + + +#[test] +fn test_snapshot1_readlink() { + assert_wasi_output!( + "../wasi_test_resources/snapshot1/readlink.wasm", + "snapshot1_readlink", + vec![], + vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),], + vec![], + "../wasi_test_resources/readlink.out" + ); +} diff --git a/tests/wasitests/snapshot1_wasi_sees_virtual_root.rs b/tests/wasitests/snapshot1_wasi_sees_virtual_root.rs new file mode 100644 index 00000000000..25e160c4efe --- /dev/null +++ b/tests/wasitests/snapshot1_wasi_sees_virtual_root.rs @@ -0,0 +1,16 @@ +// !!! THIS IS A GENERATED FILE !!! +// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME +// Files autogenerated with cargo build. + + +#[test] +fn test_snapshot1_wasi_sees_virtual_root() { + assert_wasi_output!( + "../wasi_test_resources/snapshot1/wasi_sees_virtual_root.wasm", + "snapshot1_wasi_sees_virtual_root", + vec![], + vec![("act1".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act1")),("act2".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act2")),("act1-again".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act1")),], + vec![], + "../wasi_test_resources/wasi_sees_virtual_root.out" + ); +} diff --git a/tests/wasitests/snapshot1_writing.rs b/tests/wasitests/snapshot1_writing.rs new file mode 100644 index 00000000000..c0d242563c0 --- /dev/null +++ b/tests/wasitests/snapshot1_writing.rs @@ -0,0 +1,16 @@ +// !!! THIS IS A GENERATED FILE !!! +// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME +// Files autogenerated with cargo build. + + +#[test] +fn test_snapshot1_writing() { + assert_wasi_output!( + "../wasi_test_resources/snapshot1/writing.wasm", + "snapshot1_writing", + vec![], + vec![("act1".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act1")),("act2".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act2")),("act1-again".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act1")),], + vec![], + "../wasi_test_resources/writing.out" + ); +} diff --git a/tests/wasitests/unstable_close_preopen_fd.rs b/tests/wasitests/unstable_close_preopen_fd.rs new file mode 100644 index 00000000000..423d7ce4b0c --- /dev/null +++ b/tests/wasitests/unstable_close_preopen_fd.rs @@ -0,0 +1,16 @@ +// !!! THIS IS A GENERATED FILE !!! +// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME +// Files autogenerated with cargo build. + + +#[test] +fn test_unstable_close_preopen_fd() { + assert_wasi_output!( + "../wasi_test_resources/unstable/close_preopen_fd.wasm", + "unstable_close_preopen_fd", + vec![], + vec![("hamlet".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),], + vec![], + "../wasi_test_resources/close_preopen_fd.out" + ); +} diff --git a/lib/wasi-tests/tests/wasitests/unstable_create_dir.rs b/tests/wasitests/unstable_create_dir.rs similarity index 63% rename from lib/wasi-tests/tests/wasitests/unstable_create_dir.rs rename to tests/wasitests/unstable_create_dir.rs index bda8633f5cd..fa36290863e 100644 --- a/lib/wasi-tests/tests/wasitests/unstable_create_dir.rs +++ b/tests/wasitests/unstable_create_dir.rs @@ -1,15 +1,16 @@ // !!! THIS IS A GENERATED FILE !!! // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). +// Files autogenerated with cargo build. + #[test] fn test_unstable_create_dir() { assert_wasi_output!( - "../../wasitests/unstable/create_dir.wasm", + "../wasi_test_resources/unstable/create_dir.wasm", "unstable_create_dir", vec![std::path::PathBuf::from("."),], vec![], vec![], - "../../wasitests/create_dir.out" + "../wasi_test_resources/create_dir.out" ); } diff --git a/lib/wasi-tests/tests/wasitests/unstable_envvar.rs b/tests/wasitests/unstable_envvar.rs similarity index 51% rename from lib/wasi-tests/tests/wasitests/unstable_envvar.rs rename to tests/wasitests/unstable_envvar.rs index 0e0a8bfdd05..1df2e55f517 100644 --- a/lib/wasi-tests/tests/wasitests/unstable_envvar.rs +++ b/tests/wasitests/unstable_envvar.rs @@ -1,15 +1,16 @@ // !!! THIS IS A GENERATED FILE !!! // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). +// Files autogenerated with cargo build. + #[test] fn test_unstable_envvar() { assert_wasi_output!( - "../../wasitests/unstable/envvar.wasm", + "../wasi_test_resources/unstable/envvar.wasm", "unstable_envvar", vec![], vec![], - vec!["DOG=1".to_string(), "CAT=2".to_string(),], - "../../wasitests/envvar.out" + vec!["DOG=1".to_string(),"CAT=2".to_string(),], + "../wasi_test_resources/envvar.out" ); } diff --git a/tests/wasitests/unstable_fd_allocate.rs b/tests/wasitests/unstable_fd_allocate.rs new file mode 100644 index 00000000000..a4281eebf17 --- /dev/null +++ b/tests/wasitests/unstable_fd_allocate.rs @@ -0,0 +1,16 @@ +// !!! THIS IS A GENERATED FILE !!! +// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME +// Files autogenerated with cargo build. + + +#[test] +fn test_unstable_fd_allocate() { + assert_wasi_output!( + "../wasi_test_resources/unstable/fd_allocate.wasm", + "unstable_fd_allocate", + vec![], + vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp")),], + vec![], + "../wasi_test_resources/fd_allocate.out" + ); +} diff --git a/tests/wasitests/unstable_fd_append.rs b/tests/wasitests/unstable_fd_append.rs new file mode 100644 index 00000000000..7f786f684da --- /dev/null +++ b/tests/wasitests/unstable_fd_append.rs @@ -0,0 +1,16 @@ +// !!! THIS IS A GENERATED FILE !!! +// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME +// Files autogenerated with cargo build. + + +#[test] +fn test_unstable_fd_append() { + assert_wasi_output!( + "../wasi_test_resources/unstable/fd_append.wasm", + "unstable_fd_append", + vec![], + vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp")),], + vec![], + "../wasi_test_resources/fd_append.out" + ); +} diff --git a/tests/wasitests/unstable_fd_close.rs b/tests/wasitests/unstable_fd_close.rs new file mode 100644 index 00000000000..4f9ba5aec58 --- /dev/null +++ b/tests/wasitests/unstable_fd_close.rs @@ -0,0 +1,16 @@ +// !!! THIS IS A GENERATED FILE !!! +// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME +// Files autogenerated with cargo build. + + +#[test] +fn test_unstable_fd_close() { + assert_wasi_output!( + "../wasi_test_resources/unstable/fd_close.wasm", + "unstable_fd_close", + vec![], + vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),], + vec![], + "../wasi_test_resources/fd_close.out" + ); +} diff --git a/tests/wasitests/unstable_fd_pread.rs b/tests/wasitests/unstable_fd_pread.rs new file mode 100644 index 00000000000..930a332dfbe --- /dev/null +++ b/tests/wasitests/unstable_fd_pread.rs @@ -0,0 +1,16 @@ +// !!! THIS IS A GENERATED FILE !!! +// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME +// Files autogenerated with cargo build. + + +#[test] +fn test_unstable_fd_pread() { + assert_wasi_output!( + "../wasi_test_resources/unstable/fd_pread.wasm", + "unstable_fd_pread", + vec![], + vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),], + vec![], + "../wasi_test_resources/fd_pread.out" + ); +} diff --git a/tests/wasitests/unstable_fd_read.rs b/tests/wasitests/unstable_fd_read.rs new file mode 100644 index 00000000000..876a3906a37 --- /dev/null +++ b/tests/wasitests/unstable_fd_read.rs @@ -0,0 +1,16 @@ +// !!! THIS IS A GENERATED FILE !!! +// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME +// Files autogenerated with cargo build. + + +#[test] +fn test_unstable_fd_read() { + assert_wasi_output!( + "../wasi_test_resources/unstable/fd_read.wasm", + "unstable_fd_read", + vec![], + vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),], + vec![], + "../wasi_test_resources/fd_read.out" + ); +} diff --git a/tests/wasitests/unstable_fd_sync.rs b/tests/wasitests/unstable_fd_sync.rs new file mode 100644 index 00000000000..9862434ce8a --- /dev/null +++ b/tests/wasitests/unstable_fd_sync.rs @@ -0,0 +1,16 @@ +// !!! THIS IS A GENERATED FILE !!! +// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME +// Files autogenerated with cargo build. + + +#[test] +fn test_unstable_fd_sync() { + assert_wasi_output!( + "../wasi_test_resources/unstable/fd_sync.wasm", + "unstable_fd_sync", + vec![], + vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp")),], + vec![], + "../wasi_test_resources/fd_sync.out" + ); +} diff --git a/lib/wasi-tests/tests/wasitests/unstable_file_metadata.rs b/tests/wasitests/unstable_file_metadata.rs similarity index 63% rename from lib/wasi-tests/tests/wasitests/unstable_file_metadata.rs rename to tests/wasitests/unstable_file_metadata.rs index fef1e35e426..b8cc4701860 100644 --- a/lib/wasi-tests/tests/wasitests/unstable_file_metadata.rs +++ b/tests/wasitests/unstable_file_metadata.rs @@ -1,15 +1,16 @@ // !!! THIS IS A GENERATED FILE !!! // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). +// Files autogenerated with cargo build. + #[test] fn test_unstable_file_metadata() { assert_wasi_output!( - "../../wasitests/unstable/file_metadata.wasm", + "../wasi_test_resources/unstable/file_metadata.wasm", "unstable_file_metadata", vec![std::path::PathBuf::from("."),], vec![], vec![], - "../../wasitests/file_metadata.out" + "../wasi_test_resources/file_metadata.out" ); } diff --git a/lib/wasi-tests/tests/wasitests/unstable_fs_sandbox_test.rs b/tests/wasitests/unstable_fs_sandbox_test.rs similarity index 60% rename from lib/wasi-tests/tests/wasitests/unstable_fs_sandbox_test.rs rename to tests/wasitests/unstable_fs_sandbox_test.rs index 3caf3b299fe..f478b7e4c68 100644 --- a/lib/wasi-tests/tests/wasitests/unstable_fs_sandbox_test.rs +++ b/tests/wasitests/unstable_fs_sandbox_test.rs @@ -1,15 +1,16 @@ // !!! THIS IS A GENERATED FILE !!! // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). +// Files autogenerated with cargo build. + #[test] fn test_unstable_fs_sandbox_test() { assert_wasi_output!( - "../../wasitests/unstable/fs_sandbox_test.wasm", + "../wasi_test_resources/unstable/fs_sandbox_test.wasm", "unstable_fs_sandbox_test", vec![], vec![], vec![], - "../../wasitests/fs_sandbox_test.out" + "../wasi_test_resources/fs_sandbox_test.out" ); } diff --git a/tests/wasitests/unstable_fseek.rs b/tests/wasitests/unstable_fseek.rs new file mode 100644 index 00000000000..cb457469f24 --- /dev/null +++ b/tests/wasitests/unstable_fseek.rs @@ -0,0 +1,16 @@ +// !!! THIS IS A GENERATED FILE !!! +// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME +// Files autogenerated with cargo build. + + +#[test] +fn test_unstable_fseek() { + assert_wasi_output!( + "../wasi_test_resources/unstable/fseek.wasm", + "unstable_fseek", + vec![], + vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),], + vec![], + "../wasi_test_resources/fseek.out" + ); +} diff --git a/lib/wasi-tests/tests/wasitests/unstable_hello.rs b/tests/wasitests/unstable_hello.rs similarity index 61% rename from lib/wasi-tests/tests/wasitests/unstable_hello.rs rename to tests/wasitests/unstable_hello.rs index 9cbd7297b81..4aa58526a5b 100644 --- a/lib/wasi-tests/tests/wasitests/unstable_hello.rs +++ b/tests/wasitests/unstable_hello.rs @@ -1,15 +1,16 @@ // !!! THIS IS A GENERATED FILE !!! // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). +// Files autogenerated with cargo build. + #[test] fn test_unstable_hello() { assert_wasi_output!( - "../../wasitests/unstable/hello.wasm", + "../wasi_test_resources/unstable/hello.wasm", "unstable_hello", vec![], vec![], vec![], - "../../wasitests/hello.out" + "../wasi_test_resources/hello.out" ); } diff --git a/lib/wasi-tests/tests/wasitests/unstable_isatty.rs b/tests/wasitests/unstable_isatty.rs similarity index 61% rename from lib/wasi-tests/tests/wasitests/unstable_isatty.rs rename to tests/wasitests/unstable_isatty.rs index 78138578834..07fabd454ea 100644 --- a/lib/wasi-tests/tests/wasitests/unstable_isatty.rs +++ b/tests/wasitests/unstable_isatty.rs @@ -1,15 +1,16 @@ // !!! THIS IS A GENERATED FILE !!! // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). +// Files autogenerated with cargo build. + #[test] fn test_unstable_isatty() { assert_wasi_output!( - "../../wasitests/unstable/isatty.wasm", + "../wasi_test_resources/unstable/isatty.wasm", "unstable_isatty", vec![], vec![], vec![], - "../../wasitests/isatty.out" + "../wasi_test_resources/isatty.out" ); } diff --git a/tests/wasitests/unstable_mapdir.rs b/tests/wasitests/unstable_mapdir.rs new file mode 100644 index 00000000000..3ca14c9e321 --- /dev/null +++ b/tests/wasitests/unstable_mapdir.rs @@ -0,0 +1,16 @@ +// !!! THIS IS A GENERATED FILE !!! +// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME +// Files autogenerated with cargo build. + + +#[test] +fn test_unstable_mapdir() { + assert_wasi_output!( + "../wasi_test_resources/unstable/mapdir.wasm", + "unstable_mapdir", + vec![], + vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),], + vec![], + "../wasi_test_resources/mapdir.out" + ); +} diff --git a/tests/wasitests/unstable_path_link.rs b/tests/wasitests/unstable_path_link.rs new file mode 100644 index 00000000000..4158d4b0c8c --- /dev/null +++ b/tests/wasitests/unstable_path_link.rs @@ -0,0 +1,16 @@ +// !!! THIS IS A GENERATED FILE !!! +// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME +// Files autogenerated with cargo build. + + +#[test] +fn test_unstable_path_link() { + assert_wasi_output!( + "../wasi_test_resources/unstable/path_link.wasm", + "unstable_path_link", + vec![], + vec![("act5".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act5")),("temp".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp")),], + vec![], + "../wasi_test_resources/path_link.out" + ); +} diff --git a/tests/wasitests/unstable_path_rename.rs b/tests/wasitests/unstable_path_rename.rs new file mode 100644 index 00000000000..62171d0dc99 --- /dev/null +++ b/tests/wasitests/unstable_path_rename.rs @@ -0,0 +1,16 @@ +// !!! THIS IS A GENERATED FILE !!! +// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME +// Files autogenerated with cargo build. + + +#[test] +fn test_unstable_path_rename() { + assert_wasi_output!( + "../wasi_test_resources/unstable/path_rename.wasm", + "unstable_path_rename", + vec![], + vec![("temp".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp")),], + vec![], + "../wasi_test_resources/path_rename.out" + ); +} diff --git a/tests/wasitests/unstable_path_symlink.rs b/tests/wasitests/unstable_path_symlink.rs new file mode 100644 index 00000000000..f8f3b2c86d2 --- /dev/null +++ b/tests/wasitests/unstable_path_symlink.rs @@ -0,0 +1,16 @@ +// !!! THIS IS A GENERATED FILE !!! +// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME +// Files autogenerated with cargo build. + + +#[test] +fn test_unstable_path_symlink() { + assert_wasi_output!( + "../wasi_test_resources/unstable/path_symlink.wasm", + "unstable_path_symlink", + vec![], + vec![("temp".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp")),("hamlet".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),], + vec![], + "../wasi_test_resources/path_symlink.out" + ); +} diff --git a/tests/wasitests/unstable_poll_oneoff.rs b/tests/wasitests/unstable_poll_oneoff.rs new file mode 100644 index 00000000000..81603d00ab7 --- /dev/null +++ b/tests/wasitests/unstable_poll_oneoff.rs @@ -0,0 +1,16 @@ +// !!! THIS IS A GENERATED FILE !!! +// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME +// Files autogenerated with cargo build. + + +#[test] +fn test_unstable_poll_oneoff() { + assert_wasi_output!( + "../wasi_test_resources/unstable/poll_oneoff.wasm", + "unstable_poll_oneoff", + vec![], + vec![("hamlet".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),("temp".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp")),], + vec![], + "../wasi_test_resources/poll_oneoff.out" + ); +} diff --git a/lib/wasi-tests/tests/wasitests/unstable_quine.rs b/tests/wasitests/unstable_quine.rs similarity index 64% rename from lib/wasi-tests/tests/wasitests/unstable_quine.rs rename to tests/wasitests/unstable_quine.rs index 690704395e2..3db685b800d 100644 --- a/lib/wasi-tests/tests/wasitests/unstable_quine.rs +++ b/tests/wasitests/unstable_quine.rs @@ -1,15 +1,16 @@ // !!! THIS IS A GENERATED FILE !!! // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME -// Files autogenerated with cargo build (build/wasitests.rs). +// Files autogenerated with cargo build. + #[test] fn test_unstable_quine() { assert_wasi_output!( - "../../wasitests/unstable/quine.wasm", + "../wasi_test_resources/unstable/quine.wasm", "unstable_quine", vec![std::path::PathBuf::from("."),], vec![], vec![], - "../../wasitests/quine.out" + "../wasi_test_resources/quine.out" ); } diff --git a/tests/wasitests/unstable_readlink.rs b/tests/wasitests/unstable_readlink.rs new file mode 100644 index 00000000000..4f8449cf738 --- /dev/null +++ b/tests/wasitests/unstable_readlink.rs @@ -0,0 +1,16 @@ +// !!! THIS IS A GENERATED FILE !!! +// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME +// Files autogenerated with cargo build. + + +#[test] +fn test_unstable_readlink() { + assert_wasi_output!( + "../wasi_test_resources/unstable/readlink.wasm", + "unstable_readlink", + vec![], + vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),], + vec![], + "../wasi_test_resources/readlink.out" + ); +} diff --git a/tests/wasitests/unstable_wasi_sees_virtual_root.rs b/tests/wasitests/unstable_wasi_sees_virtual_root.rs new file mode 100644 index 00000000000..719de8260f8 --- /dev/null +++ b/tests/wasitests/unstable_wasi_sees_virtual_root.rs @@ -0,0 +1,16 @@ +// !!! THIS IS A GENERATED FILE !!! +// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME +// Files autogenerated with cargo build. + + +#[test] +fn test_unstable_wasi_sees_virtual_root() { + assert_wasi_output!( + "../wasi_test_resources/unstable/wasi_sees_virtual_root.wasm", + "unstable_wasi_sees_virtual_root", + vec![], + vec![("act1".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act1")),("act2".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act2")),("act1-again".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act1")),], + vec![], + "../wasi_test_resources/wasi_sees_virtual_root.out" + ); +} diff --git a/tests/wasitests/unstable_writing.rs b/tests/wasitests/unstable_writing.rs new file mode 100644 index 00000000000..91d8640709f --- /dev/null +++ b/tests/wasitests/unstable_writing.rs @@ -0,0 +1,16 @@ +// !!! THIS IS A GENERATED FILE !!! +// ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME +// Files autogenerated with cargo build. + + +#[test] +fn test_unstable_writing() { + assert_wasi_output!( + "../wasi_test_resources/unstable/writing.wasm", + "unstable_writing", + vec![], + vec![("act1".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act1")),("act2".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act2")),("act1-again".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act1")),], + vec![], + "../wasi_test_resources/writing.out" + ); +} From 513e6acbc1f166db903e0cd944247f20fa99cd1a Mon Sep 17 00:00:00 2001 From: Mark McCaskey Date: Thu, 2 Apr 2020 16:51:58 -0700 Subject: [PATCH 02/12] Move emscripten-tests to tests dir + misc fixes --- Cargo.lock | 24 +++--- Cargo.toml | 4 +- build.rs | 2 + lib/dev-utils/src/stdio.rs | 74 +++++++++++++----- lib/emscripten-tests/Cargo.toml | 28 ------- lib/emscripten-tests/a.txt | 0 .../tests/emtests/clock_gettime.rs | 9 --- lib/emscripten-tests/tests/emtests/env.rs | 9 --- .../tests/emtests/localtime.rs | 9 --- lib/emscripten-tests/tests/emtests/printf.rs | 9 --- lib/emscripten-tests/tests/emtests/puts.rs | 9 --- .../tests/emtests/test_addr_of_stacked.rs | 9 --- .../tests/emtests/test_alloca.rs | 9 --- .../tests/emtests/test_alloca_stack.rs | 9 --- .../tests/emtests/test_array2.rs | 9 --- .../tests/emtests/test_array2b.rs | 9 --- .../tests/emtests/test_atomic.rs | 9 --- .../tests/emtests/test_atox.rs | 9 --- .../tests/emtests/test_bsearch.rs | 9 --- .../tests/emtests/test_complex.rs | 9 --- .../tests/emtests/test_double_varargs.rs | 9 --- .../tests/emtests/test_erf.rs | 9 --- .../tests/emtests/test_errar.rs | 9 --- .../tests/emtests/test_flexarray_struct.rs | 9 --- .../tests/emtests/test_float32_precise.rs | 9 --- .../tests/emtests/test_frexp.rs | 9 --- .../tests/emtests/test_funcptr.rs | 9 --- .../tests/emtests/test_funcptr_namecollide.rs | 9 --- .../tests/emtests/test_funcptrfunc.rs | 9 --- .../tests/emtests/test_funcs.rs | 9 --- .../test_functionpointer_libfunc_varargs.rs | 9 --- .../tests/emtests/test_fwrite_0.rs | 9 --- .../tests/emtests/test_getcwd.rs | 9 --- .../tests/emtests/test_getgep.rs | 9 --- .../tests/emtests/test_globaldoubles.rs | 9 --- .../tests/emtests/test_globals.rs | 9 --- .../tests/emtests/test_hello_world.rs | 9 --- .../tests/emtests/test_i32_mul_precise.rs | 9 --- .../tests/emtests/test_i64_4.rs | 9 --- .../tests/emtests/test_i64_cmp2.rs | 9 --- .../tests/emtests/test_i64_i16.rs | 9 --- .../tests/emtests/test_i64_llabs.rs | 9 --- .../tests/emtests/test_i64_precise.rs | 9 --- .../tests/emtests/test_i64_precise_needed.rs | 9 --- .../emtests/test_i64_precise_unneeded.rs | 9 --- .../tests/emtests/test_i64_qdouble.rs | 9 --- .../tests/emtests/test_i64_umul.rs | 9 --- .../tests/emtests/test_i64_zextneg.rs | 9 --- lib/emscripten-tests/tests/emtests/test_if.rs | 9 --- .../tests/emtests/test_if_else.rs | 9 --- .../tests/emtests/test_indirectbr.rs | 9 --- .../tests/emtests/test_isnan.rs | 9 --- .../tests/emtests/test_libcextra.rs | 9 --- .../tests/emtests/test_libgen.rs | 9 --- .../emtests/test_literal_negative_zero.rs | 9 --- .../tests/emtests/test_llrint.rs | 9 --- .../tests/emtests/test_llvm_fabs.rs | 9 --- .../tests/emtests/test_llvmswitch.rs | 9 --- .../tests/emtests/test_longjmp.rs | 9 --- .../tests/emtests/test_longjmp2.rs | 9 --- .../tests/emtests/test_longjmp3.rs | 9 --- .../tests/emtests/test_longjmp4.rs | 9 --- .../tests/emtests/test_longjmp_funcptr.rs | 9 --- .../tests/emtests/test_longjmp_repeat.rs | 9 --- .../tests/emtests/test_longjmp_stacked.rs | 9 --- .../tests/emtests/test_longjmp_throw.rs | 9 --- .../tests/emtests/test_longjmp_unwind.rs | 9 --- .../tests/emtests/test_loop.rs | 9 --- .../tests/emtests/test_memcpy2.rs | 9 --- .../tests/emtests/test_memcpy3.rs | 9 --- .../tests/emtests/test_memmove.rs | 9 --- .../tests/emtests/test_memmove2.rs | 9 --- .../tests/emtests/test_memmove3.rs | 9 --- .../tests/emtests/test_memset.rs | 9 --- .../tests/emtests/test_negative_zero.rs | 9 --- .../emtests/test_nested_struct_varargs.rs | 9 --- .../src/lib.rs => tests/emscripten.rs | 4 +- .../emtests/FS_exports.cpp | 0 .../emtests/FS_exports.txt | 0 .../emtests/FS_exports.wasm | Bin .../emtests/FS_exports_2.txt | 0 .../emtests/FS_exports_assert.txt | 0 .../emtests/FS_exports_assert_2.txt | 0 .../emscripten_resources}/emtests/README.md | 0 .../emtests/clock_gettime.c | 0 .../emtests/clock_gettime.out | 0 .../emtests/clock_gettime.wasm | Bin .../emtests/closebitcasts.c | 0 .../emtests/closebitcasts.txt | 0 .../emtests/closebitcasts.wasm | Bin .../emscripten_resources}/emtests/dyncall.c | 0 .../emscripten_resources}/emtests/dyncall.txt | 0 .../emtests/dyncall.wasm | Bin .../emtests/dyncall_specific.c | 0 .../emtests/dyncall_specific.txt | 0 .../emtests/dyncall_specific.wasm | Bin .../emtests/emscripten_get_compiler_setting.c | 0 .../emscripten_get_compiler_setting.out | 0 .../emscripten_get_compiler_setting.wasm | Bin .../emscripten_resources}/emtests/env.c | 0 .../emscripten_resources}/emtests/env.out | 0 .../emscripten_resources}/emtests/env.wasm | Bin .../emscripten_resources}/emtests/fnmatch.c | 0 .../emscripten_resources}/emtests/fnmatch.out | 0 .../emtests/getValue_setValue.cpp | 0 .../emtests/getValue_setValue.txt | 0 .../emtests/getValue_setValue.wasm | Bin .../emtests/getValue_setValue_assert.txt | 0 .../emscripten_resources}/emtests/hello.cpp | 0 .../emscripten_resources}/emtests/hello.out | 0 .../emscripten_resources}/emtests/hello.wasm | Bin .../emscripten_resources}/emtests/ignores.txt | 0 .../legacy_exported_runtime_numbers.cpp | 0 .../legacy_exported_runtime_numbers.txt | 0 .../legacy_exported_runtime_numbers.wasm | Bin ...legacy_exported_runtime_numbers_assert.txt | 0 .../emscripten_resources}/emtests/localtime.c | 0 .../emtests/localtime.out | 0 .../emtests/localtime.wasm | Bin .../emtests/modularize_closure_pre.c | 0 .../emtests/modularize_closure_pre.out | 0 .../emtests/modularize_closure_pre.wasm | Bin .../emscripten_resources}/emtests/printf.c | 0 .../emscripten_resources}/emtests/printf.out | 0 .../emscripten_resources}/emtests/printf.wasm | Bin .../emscripten_resources}/emtests/puts.c | 0 .../emscripten_resources}/emtests/puts.out | 0 .../emscripten_resources}/emtests/puts.wasm | Bin .../emtests/stackAlloc.cpp | 0 .../emtests/stackAlloc.txt | 0 .../emtests/stackAlloc.wasm | Bin .../emtests/stack_overflow.cpp | 0 .../emtests/stack_overflow.wasm | Bin .../emtests/test_addr_of_stacked.c | 0 .../emtests/test_addr_of_stacked.out | 0 .../emtests/test_addr_of_stacked.wasm | Bin .../emtests/test_alloca.c | 0 .../emtests/test_alloca.out | 0 .../emtests/test_alloca.wasm | Bin .../emtests/test_alloca_stack.c | 0 .../emtests/test_alloca_stack.out | 0 .../emtests/test_alloca_stack.wasm | Bin .../emtests/test_array2.c | 0 .../emtests/test_array2.out | 0 .../emtests/test_array2.wasm | Bin .../emtests/test_array2b.c | 0 .../emtests/test_array2b.out | 0 .../emtests/test_array2b.wasm | Bin .../emtests/test_assert.c | 0 .../emtests/test_assert.out | 0 .../emtests/test_atexit.c | 0 .../emtests/test_atexit.out | 0 .../emscripten_resources}/emtests/test_atoX.c | 0 .../emtests/test_atoX.out | 0 .../emtests/test_atoX.wasm | Bin .../emtests/test_atomic.c | 0 .../emtests/test_atomic.out | 0 .../emtests/test_atomic.wasm | Bin .../emtests/test_atomic_cxx.cpp | 0 .../emtests/test_atomic_cxx.txt | 0 .../emtests/test_atomic_cxx.wasm | Bin .../emtests/test_bigarray.c | 0 .../emtests/test_bigarray.out | 0 .../emtests/test_bitfields.c | 0 .../emtests/test_bitfields.out | 0 .../emtests/test_bsearch.c | 0 .../emtests/test_bsearch.out | 0 .../emtests/test_bsearch.wasm | Bin .../emtests/test_bswap64.c | 0 .../emtests/test_bswap64.out | 0 .../emtests/test_ccall.cpp | 0 .../emtests/test_ccall.out | 0 .../emtests/test_ccall.wasm | Bin .../emtests/test_class.c | 0 .../emtests/test_class.out | 0 .../emtests/test_complex.c | 0 .../emtests/test_complex.out | 0 .../emtests/test_complex.wasm | Bin .../emtests/test_constglobalstructs.c | 0 .../emtests/test_constglobalstructs.out | 0 .../emtests/test_conststructs.c | 0 .../emtests/test_conststructs.out | 0 .../emtests/test_copyop.c | 0 .../emtests/test_copyop.out | 0 .../emtests/test_cxx03_do_run.c | 0 .../emtests/test_cxx03_do_run.out | 0 .../emtests/test_demangle_stacks.cpp | 0 .../emtests/test_demangle_stacks.out | 0 .../emtests/test_demangle_stacks.wasm | Bin .../emtests/test_demangle_stacks_noassert.cpp | 0 .../emtests/test_demangle_stacks_noassert.out | 0 .../test_demangle_stacks_noassert.wasm | Bin .../test_direct_string_constant_usage.c | 0 .../test_direct_string_constant_usage.out | 0 .../emtests/test_dlfcn_self.c | 0 .../emtests/test_dlfcn_self.out | 0 .../emtests/test_dlmalloc_partial_2.c | 0 .../emtests/test_dlmalloc_partial_2.out | 0 .../emtests/test_dlmalloc_partial_2.wasm | Bin .../emtests/test_double_i64_conversion.c | 0 .../emtests/test_double_i64_conversion.out | 0 .../emtests/test_double_varargs.c | 0 .../emtests/test_double_varargs.out | 0 .../emtests/test_double_varargs.wasm | Bin .../emtests/test_dynamic_cast.c | 0 .../emtests/test_dynamic_cast.out | 0 .../emtests/test_dynamic_cast_2.c | 0 .../emtests/test_dynamic_cast_2.out | 0 .../emtests/test_dynamic_cast_b.c | 0 .../emtests/test_dynamic_cast_b.out | 0 .../emtests/test_em_asm.cpp | 0 .../emtests/test_em_asm.out | 0 .../emtests/test_em_asm.wasm | Bin .../emtests/test_em_asm_2.cpp | 0 .../emtests/test_em_asm_2.out | 0 .../emtests/test_em_asm_2.wasm | Bin .../emtests/test_em_asm_parameter_pack.cpp | 0 .../emtests/test_em_asm_parameter_pack.out | 0 .../emtests/test_em_asm_parameter_pack.wasm | Bin .../emtests/test_em_asm_signatures.cpp | 0 .../emtests/test_em_asm_signatures.out | 0 .../emtests/test_em_asm_signatures.wasm | Bin .../emtests/test_em_asm_unicode.cpp | 0 .../emtests/test_em_asm_unicode.out | 0 .../emtests/test_em_asm_unicode.wasm | Bin .../emtests/test_em_asm_unused_arguments.cpp | 0 .../emtests/test_em_asm_unused_arguments.out | 0 .../emtests/test_em_asm_unused_arguments.wasm | Bin .../emtests/test_em_js.cpp | 0 .../emtests/test_em_js.out | 0 .../emtests/test_em_js.wasm | Bin .../emtests/test_embind_5.cpp | 0 .../emtests/test_embind_5.out | 0 .../emtests/test_emmalloc.cpp | 0 .../emtests/test_emmalloc.txt | 0 .../emtests/test_emptyclass.c | 0 .../emtests/test_emptyclass.out | 0 .../emtests/test_emscripten_api.cpp | 0 .../emtests/test_emscripten_api.out | 0 .../emtests/test_emscripten_api.wasm | Bin .../test_emulate_function_pointer_casts.cpp | 0 .../test_emulate_function_pointer_casts.wasm | Bin .../emscripten_resources}/emtests/test_erf.c | 0 .../emtests/test_erf.out | 0 .../emtests/test_erf.wasm | Bin .../emtests/test_errar.c | 0 .../emtests/test_errar.out | 0 .../emtests/test_errar.wasm | Bin .../emtests/test_exceptions_2.cpp | 0 .../emtests/test_exceptions_2.out | 0 .../emtests/test_exceptions_2.wasm | Bin .../emtests/test_exceptions_alias.c | 0 .../emtests/test_exceptions_alias.out | 0 .../emtests/test_exceptions_convert.cpp | 0 .../emtests/test_exceptions_convert.txt | 0 .../emtests/test_exceptions_convert.wasm | Bin .../test_exceptions_destroy_virtual.cpp | 0 .../test_exceptions_destroy_virtual.txt | 0 .../test_exceptions_destroy_virtual.wasm | Bin .../emtests/test_exceptions_libcxx.cpp | 0 .../emtests/test_exceptions_libcxx.txt | 0 .../emtests/test_exceptions_libcxx.wasm | Bin .../emtests/test_exceptions_multi.cpp | 0 .../emtests/test_exceptions_multi.out | 0 .../emtests/test_exceptions_multi.wasm | Bin .../test_exceptions_multiple_inherit.cpp | 0 .../test_exceptions_multiple_inherit.txt | 0 .../test_exceptions_multiple_inherit.wasm | Bin ...st_exceptions_multiple_inherit_rethrow.cpp | 0 ...st_exceptions_multiple_inherit_rethrow.txt | 0 ...t_exceptions_multiple_inherit_rethrow.wasm | Bin .../emtests/test_exceptions_primary.cpp | 0 .../emtests/test_exceptions_primary.txt | 0 .../emtests/test_exceptions_primary.wasm | Bin .../emtests/test_exceptions_refcount.cpp | 0 .../emtests/test_exceptions_refcount.txt | 0 .../emtests/test_exceptions_refcount.wasm | Bin .../emtests/test_exceptions_resume.cpp | 0 .../emtests/test_exceptions_resume.txt | 0 .../emtests/test_exceptions_resume.wasm | Bin .../emtests/test_exceptions_rethrow.cpp | 0 .../emtests/test_exceptions_rethrow.txt | 0 .../emtests/test_exceptions_rethrow.wasm | Bin .../emtests/test_exceptions_simplify_cfg.cpp | 0 .../emtests/test_exceptions_simplify_cfg.txt | 0 .../emtests/test_exceptions_simplify_cfg.wasm | Bin .../emtests/test_exceptions_std.cpp | 0 .../emtests/test_exceptions_std.out | 0 .../emtests/test_exceptions_std.wasm | Bin .../emtests/test_exceptions_typed.c | 0 .../emtests/test_exceptions_typed.out | 0 .../test_exceptions_virtual_inheritance.cpp | 0 .../test_exceptions_virtual_inheritance.txt | 0 .../test_exceptions_virtual_inheritance.wasm | Bin .../emtests/test_exceptions_white_list.cpp | 0 .../emtests/test_exceptions_white_list.out | 0 .../emtests/test_exceptions_white_list.wasm | Bin .../emtests/test_exceptions_white_list_2.c | 0 .../emtests/test_exceptions_white_list_2.out | 0 .../test_exceptions_white_list_empty.out | 0 .../emtests/test_execvp.c | 0 .../emtests/test_execvp.out | 0 .../emtests/test_execvp.wasm | Bin .../emtests/test_execvp_windows.c | 0 .../emtests/test_execvp_windows.wasm | Bin .../emtests/test_fakestat.c | 0 .../emtests/test_fakestat.out | 0 .../emtests/test_fast_math.c | 0 .../emtests/test_fast_math.out | 0 .../emtests/test_fast_math.wasm | Bin .../emscripten_resources}/emtests/test_fcvt.c | 0 .../emtests/test_fcvt.out | 0 .../emtests/test_flexarray_struct.c | 0 .../emtests/test_flexarray_struct.out | 0 .../emtests/test_flexarray_struct.wasm | Bin .../emtests/test_float32_precise.c | 0 .../emtests/test_float32_precise.out | 0 .../emtests/test_float32_precise.wasm | Bin .../emtests/test_float_builtins.c | 0 .../emtests/test_float_builtins.out | 0 .../emtests/test_float_builtins.wasm | Bin .../emtests/test_floatvars.c | 0 .../emtests/test_floatvars.out | 0 .../emtests/test_frexp.c | 0 .../emtests/test_frexp.out | 0 .../emtests/test_frexp.wasm | Bin .../emtests/test_funcptr.c | 0 .../emtests/test_funcptr.out | 0 .../emtests/test_funcptr.wasm | Bin .../emtests/test_funcptr_import_type.cpp | 0 .../emtests/test_funcptr_import_type.out | 0 .../emtests/test_funcptr_namecollide.c | 0 .../emtests/test_funcptr_namecollide.out | 0 .../emtests/test_funcptr_namecollide.wasm | Bin .../emtests/test_funcptrfunc.c | 0 .../emtests/test_funcptrfunc.out | 0 .../emtests/test_funcptrfunc.wasm | Bin .../emtests/test_funcs.c | 0 .../emtests/test_funcs.out | 0 .../emtests/test_funcs.wasm | Bin .../test_functionpointer_libfunc_varargs.c | 0 .../test_functionpointer_libfunc_varargs.out | 0 .../test_functionpointer_libfunc_varargs.wasm | Bin .../emtests/test_fwrite_0.c | 0 .../emtests/test_fwrite_0.out | 0 .../emtests/test_fwrite_0.wasm | Bin .../emtests/test_getcwd.c | 0 .../emtests/test_getcwd.out | 0 .../emtests/test_getcwd.wasm | Bin .../emtests/test_getgep.c | 0 .../emtests/test_getgep.out | 0 .../emtests/test_getgep.wasm | Bin .../emtests/test_getloadavg.c | 0 .../emtests/test_getloadavg.out | 0 .../emtests/test_getloadavg.wasm | Bin .../emtests/test_getopt.c | 0 .../emtests/test_getopt.out | 0 .../emtests/test_getopt.wasm | Bin .../emtests/test_getopt_long.c | 0 .../emtests/test_getopt_long.out | 0 .../emtests/test_getopt_long.wasm | Bin .../emtests/test_globaldoubles.c | 0 .../emtests/test_globaldoubles.out | 0 .../emtests/test_globaldoubles.wasm | Bin .../emtests/test_globals.c | 0 .../emtests/test_globals.out | 0 .../emtests/test_globals.wasm | Bin .../emtests/test_gmtime.c | 0 .../emtests/test_gmtime.out | 0 .../emtests/test_gmtime.wasm | Bin .../emtests/test_hello_world.c | 0 .../emtests/test_hello_world.out | 0 .../emtests/test_hello_world.wasm | Bin .../emtests/test_i16_emcc_intrinsic.c | 0 .../emtests/test_i16_emcc_intrinsic.out | 0 .../emtests/test_i16_emcc_intrinsic.wasm | Bin .../emtests/test_i32_mul_precise.c | 0 .../emtests/test_i32_mul_precise.out | 0 .../emtests/test_i32_mul_precise.wasm | Bin .../emscripten_resources}/emtests/test_i64.c | 0 .../emtests/test_i64.out | 0 .../emtests/test_i64.wasm | Bin .../emtests/test_i64_2.c | 0 .../emtests/test_i64_2.out | 0 .../emtests/test_i64_3.c | 0 .../emtests/test_i64_3.out | 0 .../emtests/test_i64_4.c | 0 .../emtests/test_i64_4.out | 0 .../emtests/test_i64_4.wasm | Bin .../emtests/test_i64_7z.c | 0 .../emtests/test_i64_7z.out | 0 .../emtests/test_i64_7z.wasm | Bin .../emtests/test_i64_b.c | 0 .../emtests/test_i64_b.out | 0 .../emtests/test_i64_cmp.c | 0 .../emtests/test_i64_cmp.out | 0 .../emtests/test_i64_cmp2.c | 0 .../emtests/test_i64_cmp2.out | 0 .../emtests/test_i64_cmp2.wasm | Bin .../emtests/test_i64_double.c | 0 .../emtests/test_i64_double.out | 0 .../emtests/test_i64_i16.c | 0 .../emtests/test_i64_i16.out | 0 .../emtests/test_i64_i16.wasm | Bin .../emtests/test_i64_llabs.c | 0 .../emtests/test_i64_llabs.out | 0 .../emtests/test_i64_llabs.wasm | Bin .../emtests/test_i64_precise.c | 0 .../emtests/test_i64_precise.out | 0 .../emtests/test_i64_precise.wasm | Bin .../emtests/test_i64_precise_needed.c | 0 .../emtests/test_i64_precise_needed.out | 0 .../emtests/test_i64_precise_needed.wasm | Bin .../emtests/test_i64_precise_unneeded.c | 0 .../emtests/test_i64_precise_unneeded.out | 0 .../emtests/test_i64_precise_unneeded.wasm | Bin .../emtests/test_i64_qdouble.c | 0 .../emtests/test_i64_qdouble.out | 0 .../emtests/test_i64_qdouble.wasm | Bin .../emtests/test_i64_umul.c | 0 .../emtests/test_i64_umul.out | 0 .../emtests/test_i64_umul.wasm | Bin .../emtests/test_i64_varargs.c | 0 .../emtests/test_i64_varargs.out | 0 .../emtests/test_i64_varargs.wasm | Bin .../emtests/test_i64_zextneg.c | 0 .../emtests/test_i64_zextneg.out | 0 .../emtests/test_i64_zextneg.wasm | Bin .../emscripten_resources}/emtests/test_if.c | 0 .../emscripten_resources}/emtests/test_if.out | 0 .../emtests/test_if.wasm | Bin .../emtests/test_if_else.c | 0 .../emtests/test_if_else.out | 0 .../emtests/test_if_else.wasm | Bin .../emtests/test_indirectbr.c | 0 .../emtests/test_indirectbr.out | 0 .../emtests/test_indirectbr.wasm | Bin .../emtests/test_indirectbr_many.c | 0 .../emtests/test_indirectbr_many.out | 0 .../emtests/test_indirectbr_many.wasm | Bin .../emtests/test_inherit.c | 0 .../emtests/test_inherit.out | 0 .../emtests/test_inlinejs.c | 0 .../emtests/test_inlinejs.out | 0 .../emtests/test_inlinejs2.c | 0 .../emtests/test_inlinejs2.out | 0 .../emtests/test_inlinejs3.c | 0 .../emtests/test_inlinejs3.out | 0 .../emtests/test_intentional_fault.c | 0 .../emtests/test_intentional_fault.wasm | Bin .../emtests/test_intvars.c | 0 .../emtests/test_intvars.out | 0 .../emtests/test_isdigit_l.c | 0 .../emtests/test_isdigit_l.out | 0 .../emtests/test_isnan.c | 0 .../emtests/test_isnan.out | 0 .../emtests/test_isnan.wasm | Bin .../emtests/test_istream.c | 0 .../emtests/test_istream.out | 0 .../emtests/test_iswdigit.c | 0 .../emtests/test_iswdigit.out | 0 .../emtests/test_libcextra.c | 0 .../emtests/test_libcextra.out | 0 .../emtests/test_libcextra.wasm | Bin .../emtests/test_libgen.c | 0 .../emtests/test_libgen.out | 0 .../emtests/test_libgen.wasm | Bin .../emtests/test_linked_list.c | 0 .../emtests/test_linked_list.out | 0 .../emtests/test_literal_negative_zero.c | 0 .../emtests/test_literal_negative_zero.out | 0 .../emtests/test_literal_negative_zero.wasm | Bin .../emtests/test_llrint.c | 0 .../emtests/test_llrint.out | 0 .../emtests/test_llrint.wasm | Bin .../emtests/test_llvm_fabs.c | 0 .../emtests/test_llvm_fabs.out | 0 .../emtests/test_llvm_fabs.wasm | Bin .../emtests/test_llvm_intrinsics.cpp | 0 .../emtests/test_llvm_intrinsics.out | 0 .../emtests/test_llvm_intrinsics.wasm | Bin .../emtests/test_llvm_used.c | 0 .../emtests/test_llvm_used.out | 0 .../emtests/test_llvmswitch.c | 0 .../emtests/test_llvmswitch.out | 0 .../emtests/test_llvmswitch.wasm | Bin .../emtests/test_longjmp.c | 0 .../emtests/test_longjmp.out | 0 .../emtests/test_longjmp.wasm | Bin .../emtests/test_longjmp2.c | 0 .../emtests/test_longjmp2.out | 0 .../emtests/test_longjmp2.wasm | Bin .../emtests/test_longjmp3.c | 0 .../emtests/test_longjmp3.out | 0 .../emtests/test_longjmp3.wasm | Bin .../emtests/test_longjmp4.c | 0 .../emtests/test_longjmp4.out | 0 .../emtests/test_longjmp4.wasm | Bin .../emtests/test_longjmp_exc.c | 0 .../emtests/test_longjmp_exc.out | 0 .../emtests/test_longjmp_exc.wasm | Bin .../emtests/test_longjmp_funcptr.c | 0 .../emtests/test_longjmp_funcptr.out | 0 .../emtests/test_longjmp_funcptr.wasm | Bin .../emtests/test_longjmp_repeat.c | 0 .../emtests/test_longjmp_repeat.out | 0 .../emtests/test_longjmp_repeat.wasm | Bin .../emtests/test_longjmp_stacked.c | 0 .../emtests/test_longjmp_stacked.out | 0 .../emtests/test_longjmp_stacked.wasm | Bin .../emtests/test_longjmp_throw.cpp | 0 .../emtests/test_longjmp_throw.out | 0 .../emtests/test_longjmp_throw.wasm | Bin .../emtests/test_longjmp_unwind.c | 0 .../emtests/test_longjmp_unwind.out | 0 .../emtests/test_longjmp_unwind.wasm | Bin .../emscripten_resources}/emtests/test_loop.c | 0 .../emtests/test_loop.out | 0 .../emtests/test_loop.wasm | Bin .../emtests/test_lower_intrinsics.c | 0 .../emtests/test_lower_intrinsics.out | 0 .../emtests/test_lower_intrinsics.wasm | Bin .../emtests/test_main_module_static_align.cpp | 0 .../emtests/test_main_module_static_align.txt | 0 .../test_main_module_static_align.wasm | Bin .../emtests/test_main_thread_async_em_asm.cpp | 0 .../emtests/test_main_thread_async_em_asm.out | 0 .../test_main_thread_async_em_asm.wasm | Bin .../emtests/test_mainenv.c | 0 .../emtests/test_mainenv.out | 0 .../emtests/test_mainenv.wasm | Bin .../emscripten_resources}/emtests/test_math.c | 0 .../emtests/test_math.out | 0 .../emtests/test_mathfuncptr.c | 0 .../emtests/test_mathfuncptr.out | 0 .../emtests/test_mathfuncptr.wasm | Bin .../emtests/test_memcpy2.c | 0 .../emtests/test_memcpy2.out | 0 .../emtests/test_memcpy2.wasm | Bin .../emtests/test_memcpy3.c | 0 .../emtests/test_memcpy3.out | 0 .../emtests/test_memcpy3.wasm | Bin .../emtests/test_memcpy_memcmp.c | 0 .../emtests/test_memcpy_memcmp.out | 0 .../emtests/test_memcpy_memcmp.wasm | Bin .../emtests/test_memmove.c | 0 .../emtests/test_memmove.out | 0 .../emtests/test_memmove.wasm | Bin .../emtests/test_memmove2.c | 0 .../emtests/test_memmove2.out | 0 .../emtests/test_memmove2.wasm | Bin .../emtests/test_memmove3.c | 0 .../emtests/test_memmove3.out | 0 .../emtests/test_memmove3.wasm | Bin .../emtests/test_memorygrowth.c | 0 .../emtests/test_memorygrowth.wasm | Bin .../emtests/test_memorygrowth_2.c | 0 .../emtests/test_memorygrowth_2.wasm | Bin .../emtests/test_memorygrowth_3.c | 0 .../emtests/test_memorygrowth_3.txt | 0 .../emtests/test_memorygrowth_3.wasm | Bin .../emtests/test_memorygrowth_wasm_mem_max.c | 0 .../test_memorygrowth_wasm_mem_max.txt | 0 .../test_memorygrowth_wasm_mem_max.wasm | Bin .../emtests/test_memset.c | 0 .../emtests/test_memset.out | 0 .../emtests/test_memset.wasm | Bin .../emscripten_resources}/emtests/test_mmap.c | 0 .../emtests/test_mmap.out | 0 .../emtests/test_mmap.wasm | Bin .../emtests/test_mod_globalstruct.c | 0 .../emtests/test_mod_globalstruct.out | 0 .../emtests/test_negative_zero.c | 0 .../emtests/test_negative_zero.out | 0 .../emtests/test_negative_zero.wasm | Bin .../emtests/test_nested_struct_varargs.c | 0 .../emtests/test_nested_struct_varargs.out | 0 .../emtests/test_nested_struct_varargs.wasm | Bin .../emtests/test_nl_types.c | 0 .../emtests/test_nl_types.out | 0 .../emtests/test_nl_types.wasm | Bin .../emtests/test_perrar.c | 0 .../emtests/test_perrar.out | 0 .../emtests/test_perrar.wasm | Bin .../emtests/test_phiundef.c | 0 .../emtests/test_phiundef.out | 0 .../emtests/test_phiundef.wasm | Bin .../emscripten_resources}/emtests/test_pipe.c | 0 .../emtests/test_pipe.out | 0 .../emtests/test_pipe.wasm | Bin .../emscripten_resources}/emtests/test_poll.c | 0 .../emtests/test_poll.out | 0 .../emtests/test_poll.wasm | Bin .../emtests/test_polymorph.c | 0 .../emtests/test_polymorph.out | 0 .../emtests/test_posixtime.c | 0 .../emtests/test_posixtime.out | 0 .../emtests/test_posixtime.wasm | Bin .../emtests/test_posixtime_no_monotonic.out | 0 .../emtests/test_printf_2.c | 0 .../emtests/test_printf_2.out | 0 .../emtests/test_printf_2.wasm | Bin .../emtests/test_printf_more.c | 0 .../emtests/test_printf_more.out | 0 .../emtests/test_printf_more.wasm | Bin .../emtests/test_ptrtoint.out | 0 .../emtests/test_random_device.cpp | 0 .../emtests/test_random_device.txt | 0 .../emtests/test_regex.c | 0 .../emtests/test_regex.out | 0 .../emtests/test_regex.wasm | Bin .../emtests/test_reinterpreted_ptrs.c | 0 .../emtests/test_reinterpreted_ptrs.out | 0 .../emtests/test_relocatable_void_function.c | 0 .../test_relocatable_void_function.out | 0 .../test_relocatable_void_function.wasm | Bin .../emtests/test_rounding.c | 0 .../emtests/test_rounding.out | 0 .../emtests/test_rounding.wasm | Bin .../emtests/test_runtime_stacksave.c | 0 .../emtests/test_runtime_stacksave.wasm | Bin .../emtests/test_set_align.c | 0 .../emtests/test_set_align.out | 0 .../emtests/test_set_align.wasm | Bin .../emtests/test_siglongjmp.c | 0 .../emtests/test_siglongjmp.out | 0 .../emtests/test_siglongjmp.wasm | Bin .../emscripten_resources}/emtests/test_simd.c | 0 .../emtests/test_simd.out | 0 .../emtests/test_simd10.c | 0 .../emtests/test_simd10.out | 0 .../emtests/test_simd11.c | 0 .../emtests/test_simd11.out | 0 .../emtests/test_simd12.c | 0 .../emtests/test_simd12.out | 0 .../emtests/test_simd13.c | 0 .../emtests/test_simd13.out | 0 .../emtests/test_simd14.c | 0 .../emtests/test_simd14.out | 0 .../emtests/test_simd15.c | 0 .../emtests/test_simd15.out | 0 .../emtests/test_simd16.c | 0 .../emtests/test_simd16.out | 0 .../emtests/test_simd2.c | 0 .../emtests/test_simd2.out | 0 .../emtests/test_simd3.c | 0 .../emtests/test_simd3.out | 0 .../emtests/test_simd4.c | 0 .../emtests/test_simd4.out | 0 .../emtests/test_simd5.c | 0 .../emtests/test_simd5.out | 0 .../emtests/test_simd6.c | 0 .../emtests/test_simd6.out | 0 .../emtests/test_simd7.c | 0 .../emtests/test_simd7.out | 0 .../emtests/test_simd8.c | 0 .../emtests/test_simd8.out | 0 .../emtests/test_simd9.c | 0 .../emtests/test_simd9.out | 0 .../emtests/test_simd_dyncall.cpp | 0 .../emtests/test_simd_dyncall.txt | 0 .../emtests/test_simd_float32x4.c | 0 .../emtests/test_simd_float32x4.out | 0 .../emtests/test_simd_float64x2.c | 0 .../emtests/test_simd_float64x2.out | 0 .../emtests/test_simd_int16x8.c | 0 .../emtests/test_simd_int16x8.out | 0 .../emtests/test_simd_int32x4.c | 0 .../emtests/test_simd_int32x4.out | 0 .../emtests/test_simd_int8x16.c | 0 .../emtests/test_simd_int8x16.out | 0 .../emtests/test_simd_set_epi64x.c | 0 .../emtests/test_simd_set_epi64x.out | 0 .../emtests/test_simd_shift_right.c | 0 .../emtests/test_simd_shift_right.out | 0 .../emtests/test_simd_sitofp.c | 0 .../emtests/test_simd_sitofp.out | 0 .../emtests/test_sintvars.c | 0 .../emtests/test_sintvars.out | 0 .../emtests/test_sintvars.wasm | Bin .../emtests/test_sizeof.cpp | 0 .../emtests/test_sizeof.out | 0 .../emtests/test_sizeof.wasm | Bin .../emtests/test_sscanf.c | 0 .../emtests/test_sscanf.out | 0 .../emtests/test_sscanf.wasm | Bin .../emtests/test_sscanf_3.c | 0 .../emtests/test_sscanf_3.out | 0 .../emtests/test_sscanf_3.wasm | Bin .../emtests/test_sscanf_4.c | 0 .../emtests/test_sscanf_4.out | 0 .../emtests/test_sscanf_4.wasm | Bin .../emtests/test_sscanf_5.c | 0 .../emtests/test_sscanf_5.out | 0 .../emtests/test_sscanf_5.wasm | Bin .../emtests/test_sscanf_6.c | 0 .../emtests/test_sscanf_6.out | 0 .../emtests/test_sscanf_6.wasm | Bin .../emtests/test_sscanf_caps.c | 0 .../emtests/test_sscanf_caps.out | 0 .../emtests/test_sscanf_caps.wasm | Bin .../emtests/test_sscanf_float.c | 0 .../emtests/test_sscanf_float.out | 0 .../emtests/test_sscanf_float.wasm | Bin .../emtests/test_sscanf_hex.cpp | 0 .../emtests/test_sscanf_hex.out | 0 .../emtests/test_sscanf_hex.wasm | Bin .../emtests/test_sscanf_n.c | 0 .../emtests/test_sscanf_n.out | 0 .../emtests/test_sscanf_n.wasm | Bin .../emtests/test_sscanf_other_whitespace.c | 0 .../emtests/test_sscanf_other_whitespace.out | 0 .../emtests/test_sscanf_other_whitespace.wasm | Bin .../emtests/test_sscanf_skip.c | 0 .../emtests/test_sscanf_skip.out | 0 .../emtests/test_sscanf_skip.wasm | Bin .../emtests/test_sscanf_whitespace.c | 0 .../emtests/test_sscanf_whitespace.out | 0 .../emtests/test_sscanf_whitespace.wasm | Bin .../emtests/test_stack.c | 0 .../emtests/test_stack.out | 0 .../emtests/test_stack_align.cpp | 0 .../emtests/test_stack_align.wasm | Bin .../emtests/test_stack_byval.c | 0 .../emtests/test_stack_byval.out | 0 .../emtests/test_stack_restore.c | 0 .../emtests/test_stack_restore.out | 0 .../emtests/test_stack_varargs.c | 0 .../emtests/test_stack_varargs.out | 0 .../emtests/test_stack_varargs.wasm | Bin .../emtests/test_stack_void.c | 0 .../emtests/test_stack_void.out | 0 .../emtests/test_stack_void.wasm | Bin .../emtests/test_static_variable.c | 0 .../emtests/test_static_variable.out | 0 .../emtests/test_statics.c | 0 .../emtests/test_statics.out | 0 .../emtests/test_statvfs.c | 0 .../emtests/test_statvfs.out | 0 .../emtests/test_statvfs.wasm | Bin .../emtests/test_std_cout_new.cpp | 0 .../emtests/test_std_cout_new.out | 0 .../emtests/test_std_cout_new.wasm | Bin .../emtests/test_stdlibs.c | 0 .../emtests/test_stdlibs.out | 0 .../emtests/test_stdvec.c | 0 .../emtests/test_stdvec.out | 0 .../emtests/test_strcasecmp.c | 0 .../emtests/test_strcasecmp.out | 0 .../emtests/test_strcasecmp.wasm | Bin .../emtests/test_strcmp_uni.c | 0 .../emtests/test_strcmp_uni.out | 0 .../emtests/test_strcmp_uni.wasm | Bin .../emtests/test_strftime.cpp | 0 .../emtests/test_strftime.out | 0 .../emtests/test_strftime.wasm | Bin .../emtests/test_strings.c | 0 .../emtests/test_strings.out | 0 .../emtests/test_strings.wasm | Bin .../emtests/test_strndup.c | 0 .../emtests/test_strndup.out | 0 .../emtests/test_strndup.wasm | Bin .../emtests/test_strptime_days.c | 0 .../emtests/test_strptime_days.out | 0 .../emtests/test_strptime_days.wasm | Bin .../emtests/test_strptime_reentrant.c | 0 .../emtests/test_strptime_reentrant.out | 0 .../emtests/test_strptime_reentrant.wasm | Bin .../emtests/test_strptime_tm.c | 0 .../emtests/test_strptime_tm.out | 0 .../emtests/test_strstr.c | 0 .../emtests/test_strstr.out | 0 .../emtests/test_strstr.wasm | Bin .../emtests/test_strtod.c | 0 .../emtests/test_strtod.out | 0 .../emtests/test_strtod.wasm | Bin .../emtests/test_strtok.c | 0 .../emtests/test_strtok.out | 0 .../emtests/test_strtok.wasm | Bin .../emtests/test_strtol_bin.c | 0 .../emtests/test_strtol_bin.out | 0 .../emtests/test_strtol_bin.wasm | Bin .../emtests/test_strtol_dec.c | 0 .../emtests/test_strtol_dec.out | 0 .../emtests/test_strtol_dec.wasm | Bin .../emtests/test_strtol_hex.c | 0 .../emtests/test_strtol_hex.out | 0 .../emtests/test_strtol_hex.wasm | Bin .../emtests/test_strtol_oct.c | 0 .../emtests/test_strtol_oct.out | 0 .../emtests/test_strtol_oct.wasm | Bin .../emtests/test_strtold.c | 0 .../emtests/test_strtold.out | 0 .../emtests/test_strtold.wasm | Bin .../emtests/test_strtoll_bin.c | 0 .../emtests/test_strtoll_bin.out | 0 .../emtests/test_strtoll_bin.wasm | Bin .../emtests/test_strtoll_dec.c | 0 .../emtests/test_strtoll_dec.out | 0 .../emtests/test_strtoll_dec.wasm | Bin .../emtests/test_strtoll_hex.c | 0 .../emtests/test_strtoll_hex.out | 0 .../emtests/test_strtoll_hex.wasm | Bin .../emtests/test_strtoll_oct.c | 0 .../emtests/test_strtoll_oct.out | 0 .../emtests/test_strtoll_oct.wasm | Bin .../emtests/test_struct_varargs.c | 0 .../emtests/test_struct_varargs.out | 0 .../emtests/test_struct_varargs.wasm | Bin .../emtests/test_structs.c | 0 .../emtests/test_structs.out | 0 .../emtests/test_time_c.c | 0 .../emtests/test_time_c.out | 0 .../emtests/test_time_c.wasm | Bin .../emtests/test_timeb.c | 0 .../emtests/test_timeb.out | 0 .../emtests/test_tinyfuncstr.c | 0 .../emtests/test_tinyfuncstr.out | 0 .../emtests/test_tracing.c | 0 .../emtests/test_tracing.out | 0 .../emtests/test_tracing.wasm | Bin .../emtests/test_transtrcase.c | 0 .../emtests/test_transtrcase.out | 0 .../emtests/test_transtrcase.wasm | Bin .../emtests/test_trickystring.c | 0 .../emtests/test_trickystring.out | 0 .../emtests/test_trickystring.wasm | Bin .../emtests/test_typeid.c | 0 .../emtests/test_typeid.out | 0 .../emtests/test_uname.c | 0 .../emtests/test_uname.out | 0 .../emtests/test_uname.wasm | Bin .../emtests/test_unary_literal.cpp | 0 .../emtests/test_unary_literal.out | 0 .../emtests/test_unary_literal.wasm | Bin .../emscripten_resources}/emtests/test_utf.c | 0 .../emtests/test_utf.out | 0 .../emtests/test_utf.wasm | Bin .../emtests/test_varargs.c | 0 .../emtests/test_varargs.out | 0 .../emtests/test_varargs.wasm | Bin .../emtests/test_varargs_multi.c | 0 .../emtests/test_varargs_multi.out | 0 .../emtests/test_varargs_multi.wasm | Bin .../emscripten_resources}/emtests/test_vfs.c | 0 .../emscripten_resources}/emtests/test_vfs.md | 0 .../emtests/test_vfs.out | 0 .../emtests/test_vfs.wasm | Bin .../emtests/test_vfs_bundle.wasm | Bin .../emtests/test_vfs_data.txt | 0 .../emtests/test_vprintf.c | 0 .../emtests/test_vprintf.out | 0 .../emtests/test_vprintf.wasm | Bin .../emtests/test_vsnprintf.c | 0 .../emtests/test_vsnprintf.out | 0 .../emtests/test_vsnprintf.wasm | Bin .../emtests/test_wprintf.cpp | 0 .../emtests/test_wprintf.out | 0 .../emtests/test_wprintf.wasm | Bin .../emtests/test_write_stdout_fileno.c | 0 .../emtests/test_write_stdout_fileno.out | 0 .../emtests/test_write_stdout_fileno.wasm | Bin .../emtests/test_zero_multiplication.c | 0 .../emtests/test_zero_multiplication.out | 0 .../emtests/test_zero_multiplication.wasm | Bin .../emtests/test_zerodiv.c | 0 .../emtests/test_zerodiv.out | 0 .../emtests/test_zerodiv.wasm | Bin .../is_emscripten_false.wast | 0 .../is_emscripten_true.wast | 0 .../tests => tests}/emtest.rs | 0 .../tests => tests}/emtests/_common.rs | 0 tests/emtests/clock_gettime.rs | 9 +++ .../emscripten_get_compiler_setting.rs | 4 +- tests/emtests/env.rs | 9 +++ .../tests => tests}/emtests/fs_exports.rs | 4 +- .../emtests/getvalue_setvalue.rs | 4 +- .../legacy_exported_runtime_numbers.rs | 4 +- tests/emtests/localtime.rs | 9 +++ .../tests => tests}/emtests/mod.rs | 2 +- .../emtests/modularize_closure_pre.rs | 4 +- tests/emtests/printf.rs | 9 +++ tests/emtests/puts.rs | 9 +++ .../tests => tests}/emtests/stackalloc.rs | 4 +- .../tests => tests}/emtests/syscalls.rs | 0 tests/emtests/test_addr_of_stacked.rs | 9 +++ tests/emtests/test_alloca.rs | 9 +++ tests/emtests/test_alloca_stack.rs | 9 +++ tests/emtests/test_array2.rs | 9 +++ tests/emtests/test_array2b.rs | 9 +++ tests/emtests/test_atomic.rs | 9 +++ tests/emtests/test_atox.rs | 9 +++ tests/emtests/test_bsearch.rs | 9 +++ .../tests => tests}/emtests/test_ccall.rs | 4 +- tests/emtests/test_complex.rs | 9 +++ .../emtests/test_demangle_stacks.rs | 4 +- .../emtests/test_demangle_stacks_noassert.rs | 4 +- .../emtests/test_dlmalloc_partial_2.rs | 4 +- tests/emtests/test_double_varargs.rs | 9 +++ .../tests => tests}/emtests/test_em_asm.rs | 4 +- .../tests => tests}/emtests/test_em_asm_2.rs | 4 +- .../emtests/test_em_asm_parameter_pack.rs | 4 +- .../emtests/test_em_asm_signatures.rs | 4 +- .../emtests/test_em_asm_unicode.rs | 4 +- .../emtests/test_em_asm_unused_arguments.rs | 4 +- .../tests => tests}/emtests/test_em_js.rs | 4 +- .../emtests/test_emscripten_api.rs | 4 +- tests/emtests/test_erf.rs | 9 +++ tests/emtests/test_errar.rs | 9 +++ .../emtests/test_exceptions_2.rs | 4 +- .../emtests/test_exceptions_multi.rs | 4 +- .../emtests/test_exceptions_std.rs | 4 +- .../emtests/test_exceptions_white_list.rs | 4 +- .../tests => tests}/emtests/test_execvp.rs | 4 +- .../tests => tests}/emtests/test_fast_math.rs | 4 +- tests/emtests/test_flexarray_struct.rs | 9 +++ tests/emtests/test_float32_precise.rs | 9 +++ .../emtests/test_float_builtins.rs | 4 +- tests/emtests/test_frexp.rs | 9 +++ tests/emtests/test_funcptr.rs | 9 +++ tests/emtests/test_funcptr_namecollide.rs | 9 +++ tests/emtests/test_funcptrfunc.rs | 9 +++ tests/emtests/test_funcs.rs | 9 +++ .../test_functionpointer_libfunc_varargs.rs | 9 +++ tests/emtests/test_fwrite_0.rs | 9 +++ tests/emtests/test_getcwd.rs | 9 +++ tests/emtests/test_getgep.rs | 9 +++ .../emtests/test_getloadavg.rs | 4 +- .../tests => tests}/emtests/test_getopt.rs | 4 +- .../emtests/test_getopt_long.rs | 4 +- tests/emtests/test_globaldoubles.rs | 9 +++ tests/emtests/test_globals.rs | 9 +++ .../tests => tests}/emtests/test_gmtime.rs | 4 +- tests/emtests/test_hello_world.rs | 9 +++ .../emtests/test_i16_emcc_intrinsic.rs | 4 +- tests/emtests/test_i32_mul_precise.rs | 9 +++ .../tests => tests}/emtests/test_i64.rs | 4 +- tests/emtests/test_i64_4.rs | 9 +++ .../tests => tests}/emtests/test_i64_7z.rs | 4 +- tests/emtests/test_i64_cmp2.rs | 9 +++ tests/emtests/test_i64_i16.rs | 9 +++ tests/emtests/test_i64_llabs.rs | 9 +++ tests/emtests/test_i64_precise.rs | 9 +++ tests/emtests/test_i64_precise_needed.rs | 9 +++ tests/emtests/test_i64_precise_unneeded.rs | 9 +++ tests/emtests/test_i64_qdouble.rs | 9 +++ tests/emtests/test_i64_umul.rs | 9 +++ .../emtests/test_i64_varargs.rs | 4 +- tests/emtests/test_i64_zextneg.rs | 9 +++ tests/emtests/test_if.rs | 9 +++ tests/emtests/test_if_else.rs | 9 +++ tests/emtests/test_indirectbr.rs | 9 +++ .../emtests/test_indirectbr_many.rs | 4 +- tests/emtests/test_isnan.rs | 9 +++ tests/emtests/test_libcextra.rs | 9 +++ tests/emtests/test_libgen.rs | 9 +++ tests/emtests/test_literal_negative_zero.rs | 9 +++ tests/emtests/test_llrint.rs | 9 +++ tests/emtests/test_llvm_fabs.rs | 9 +++ .../emtests/test_llvm_intrinsics.rs | 4 +- tests/emtests/test_llvmswitch.rs | 9 +++ tests/emtests/test_longjmp.rs | 9 +++ tests/emtests/test_longjmp2.rs | 9 +++ tests/emtests/test_longjmp3.rs | 9 +++ tests/emtests/test_longjmp4.rs | 9 +++ .../emtests/test_longjmp_exc.rs | 4 +- tests/emtests/test_longjmp_funcptr.rs | 9 +++ tests/emtests/test_longjmp_repeat.rs | 9 +++ tests/emtests/test_longjmp_stacked.rs | 9 +++ tests/emtests/test_longjmp_throw.rs | 9 +++ tests/emtests/test_longjmp_unwind.rs | 9 +++ tests/emtests/test_loop.rs | 9 +++ .../emtests/test_lower_intrinsics.rs | 4 +- .../emtests/test_main_thread_async_em_asm.rs | 4 +- .../tests => tests}/emtests/test_mainenv.rs | 4 +- .../emtests/test_mathfuncptr.rs | 4 +- tests/emtests/test_memcpy2.rs | 9 +++ tests/emtests/test_memcpy3.rs | 9 +++ .../emtests/test_memcpy_memcmp.rs | 4 +- tests/emtests/test_memmove.rs | 9 +++ tests/emtests/test_memmove2.rs | 9 +++ tests/emtests/test_memmove3.rs | 9 +++ tests/emtests/test_memset.rs | 9 +++ .../tests => tests}/emtests/test_mmap.rs | 4 +- tests/emtests/test_negative_zero.rs | 9 +++ tests/emtests/test_nested_struct_varargs.rs | 9 +++ .../tests => tests}/emtests/test_nl_types.rs | 4 +- .../tests => tests}/emtests/test_perrar.rs | 4 +- .../tests => tests}/emtests/test_phiundef.rs | 4 +- .../tests => tests}/emtests/test_pipe.rs | 4 +- .../tests => tests}/emtests/test_poll.rs | 4 +- .../tests => tests}/emtests/test_posixtime.rs | 4 +- .../tests => tests}/emtests/test_printf_2.rs | 4 +- .../emtests/test_printf_more.rs | 4 +- .../tests => tests}/emtests/test_regex.rs | 4 +- .../emtests/test_relocatable_void_function.rs | 4 +- .../tests => tests}/emtests/test_rounding.rs | 4 +- .../tests => tests}/emtests/test_set_align.rs | 4 +- .../emtests/test_siglongjmp.rs | 4 +- .../tests => tests}/emtests/test_sintvars.rs | 4 +- .../tests => tests}/emtests/test_sizeof.rs | 4 +- .../tests => tests}/emtests/test_sscanf.rs | 4 +- .../tests => tests}/emtests/test_sscanf_3.rs | 4 +- .../tests => tests}/emtests/test_sscanf_4.rs | 4 +- .../tests => tests}/emtests/test_sscanf_5.rs | 4 +- .../tests => tests}/emtests/test_sscanf_6.rs | 4 +- .../emtests/test_sscanf_caps.rs | 4 +- .../emtests/test_sscanf_float.rs | 4 +- .../emtests/test_sscanf_hex.rs | 4 +- .../tests => tests}/emtests/test_sscanf_n.rs | 4 +- .../emtests/test_sscanf_other_whitespace.rs | 4 +- .../emtests/test_sscanf_skip.rs | 4 +- .../emtests/test_sscanf_whitespace.rs | 4 +- .../emtests/test_stack_varargs.rs | 4 +- .../emtests/test_stack_void.rs | 4 +- .../tests => tests}/emtests/test_statvfs.rs | 4 +- .../emtests/test_std_cout_new.rs | 4 +- .../emtests/test_strcasecmp.rs | 4 +- .../emtests/test_strcmp_uni.rs | 4 +- .../tests => tests}/emtests/test_strftime.rs | 4 +- .../tests => tests}/emtests/test_strings.rs | 4 +- .../tests => tests}/emtests/test_strndup.rs | 4 +- .../emtests/test_strptime_days.rs | 4 +- .../emtests/test_strptime_reentrant.rs | 4 +- .../tests => tests}/emtests/test_strstr.rs | 4 +- .../tests => tests}/emtests/test_strtod.rs | 4 +- .../tests => tests}/emtests/test_strtok.rs | 4 +- .../emtests/test_strtol_bin.rs | 4 +- .../emtests/test_strtol_dec.rs | 4 +- .../emtests/test_strtol_hex.rs | 4 +- .../emtests/test_strtol_oct.rs | 4 +- .../tests => tests}/emtests/test_strtold.rs | 4 +- .../emtests/test_strtoll_bin.rs | 4 +- .../emtests/test_strtoll_dec.rs | 4 +- .../emtests/test_strtoll_hex.rs | 4 +- .../emtests/test_strtoll_oct.rs | 4 +- .../emtests/test_struct_varargs.rs | 4 +- .../tests => tests}/emtests/test_time_c.rs | 4 +- .../tests => tests}/emtests/test_tracing.rs | 4 +- .../emtests/test_transtrcase.rs | 4 +- .../emtests/test_trickystring.rs | 4 +- .../tests => tests}/emtests/test_uname.rs | 4 +- .../emtests/test_unary_literal.rs | 4 +- .../tests => tests}/emtests/test_utf.rs | 4 +- .../tests => tests}/emtests/test_varargs.rs | 4 +- .../emtests/test_varargs_multi.rs | 4 +- .../tests => tests}/emtests/test_vfs.rs | 4 +- .../tests => tests}/emtests/test_vprintf.rs | 4 +- .../tests => tests}/emtests/test_vsnprintf.rs | 4 +- .../tests => tests}/emtests/test_wprintf.rs | 4 +- .../emtests/test_write_stdout_fileno.rs | 4 +- .../emtests/test_zero_multiplication.rs | 4 +- .../tests => tests}/emtests/test_zerodiv.rs | 4 +- tests/generate-emscripten-tests/Cargo.toml | 12 +++ .../generate-emscripten-tests/src}/emtests.rs | 46 ++++++++--- .../generate-emscripten-tests/src/lib.rs | 3 +- tests/generate-wasi-tests/Cargo.toml | 11 +-- 1057 files changed, 969 insertions(+), 937 deletions(-) delete mode 100644 lib/emscripten-tests/Cargo.toml delete mode 100644 lib/emscripten-tests/a.txt delete mode 100644 lib/emscripten-tests/tests/emtests/clock_gettime.rs delete mode 100644 lib/emscripten-tests/tests/emtests/env.rs delete mode 100644 lib/emscripten-tests/tests/emtests/localtime.rs delete mode 100644 lib/emscripten-tests/tests/emtests/printf.rs delete mode 100644 lib/emscripten-tests/tests/emtests/puts.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_addr_of_stacked.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_alloca.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_alloca_stack.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_array2.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_array2b.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_atomic.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_atox.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_bsearch.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_complex.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_double_varargs.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_erf.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_errar.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_flexarray_struct.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_float32_precise.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_frexp.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_funcptr.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_funcptr_namecollide.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_funcptrfunc.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_funcs.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_functionpointer_libfunc_varargs.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_fwrite_0.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_getcwd.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_getgep.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_globaldoubles.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_globals.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_hello_world.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_i32_mul_precise.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_i64_4.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_i64_cmp2.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_i64_i16.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_i64_llabs.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_i64_precise.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_i64_precise_needed.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_i64_precise_unneeded.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_i64_qdouble.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_i64_umul.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_i64_zextneg.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_if.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_if_else.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_indirectbr.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_isnan.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_libcextra.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_libgen.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_literal_negative_zero.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_llrint.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_llvm_fabs.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_llvmswitch.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_longjmp.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_longjmp2.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_longjmp3.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_longjmp4.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_longjmp_funcptr.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_longjmp_repeat.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_longjmp_stacked.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_longjmp_throw.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_longjmp_unwind.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_loop.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_memcpy2.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_memcpy3.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_memmove.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_memmove2.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_memmove3.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_memset.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_negative_zero.rs delete mode 100644 lib/emscripten-tests/tests/emtests/test_nested_struct_varargs.rs rename lib/emscripten-tests/src/lib.rs => tests/emscripten.rs (80%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/FS_exports.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/FS_exports.txt (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/FS_exports.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/FS_exports_2.txt (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/FS_exports_assert.txt (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/FS_exports_assert_2.txt (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/README.md (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/clock_gettime.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/clock_gettime.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/clock_gettime.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/closebitcasts.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/closebitcasts.txt (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/closebitcasts.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/dyncall.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/dyncall.txt (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/dyncall.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/dyncall_specific.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/dyncall_specific.txt (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/dyncall_specific.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/emscripten_get_compiler_setting.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/emscripten_get_compiler_setting.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/emscripten_get_compiler_setting.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/env.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/env.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/env.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/fnmatch.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/fnmatch.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/getValue_setValue.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/getValue_setValue.txt (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/getValue_setValue.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/getValue_setValue_assert.txt (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/hello.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/hello.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/hello.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/ignores.txt (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/legacy_exported_runtime_numbers.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/legacy_exported_runtime_numbers.txt (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/legacy_exported_runtime_numbers.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/legacy_exported_runtime_numbers_assert.txt (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/localtime.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/localtime.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/localtime.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/modularize_closure_pre.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/modularize_closure_pre.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/modularize_closure_pre.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/printf.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/printf.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/printf.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/puts.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/puts.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/puts.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/stackAlloc.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/stackAlloc.txt (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/stackAlloc.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/stack_overflow.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/stack_overflow.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_addr_of_stacked.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_addr_of_stacked.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_addr_of_stacked.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_alloca.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_alloca.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_alloca.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_alloca_stack.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_alloca_stack.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_alloca_stack.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_array2.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_array2.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_array2.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_array2b.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_array2b.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_array2b.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_assert.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_assert.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_atexit.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_atexit.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_atoX.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_atoX.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_atoX.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_atomic.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_atomic.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_atomic.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_atomic_cxx.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_atomic_cxx.txt (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_atomic_cxx.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_bigarray.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_bigarray.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_bitfields.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_bitfields.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_bsearch.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_bsearch.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_bsearch.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_bswap64.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_bswap64.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_ccall.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_ccall.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_ccall.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_class.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_class.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_complex.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_complex.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_complex.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_constglobalstructs.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_constglobalstructs.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_conststructs.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_conststructs.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_copyop.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_copyop.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_cxx03_do_run.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_cxx03_do_run.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_demangle_stacks.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_demangle_stacks.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_demangle_stacks.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_demangle_stacks_noassert.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_demangle_stacks_noassert.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_demangle_stacks_noassert.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_direct_string_constant_usage.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_direct_string_constant_usage.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_dlfcn_self.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_dlfcn_self.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_dlmalloc_partial_2.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_dlmalloc_partial_2.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_dlmalloc_partial_2.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_double_i64_conversion.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_double_i64_conversion.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_double_varargs.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_double_varargs.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_double_varargs.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_dynamic_cast.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_dynamic_cast.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_dynamic_cast_2.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_dynamic_cast_2.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_dynamic_cast_b.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_dynamic_cast_b.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_em_asm.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_em_asm.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_em_asm.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_em_asm_2.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_em_asm_2.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_em_asm_2.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_em_asm_parameter_pack.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_em_asm_parameter_pack.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_em_asm_parameter_pack.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_em_asm_signatures.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_em_asm_signatures.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_em_asm_signatures.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_em_asm_unicode.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_em_asm_unicode.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_em_asm_unicode.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_em_asm_unused_arguments.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_em_asm_unused_arguments.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_em_asm_unused_arguments.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_em_js.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_em_js.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_em_js.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_embind_5.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_embind_5.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_emmalloc.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_emmalloc.txt (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_emptyclass.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_emptyclass.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_emscripten_api.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_emscripten_api.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_emscripten_api.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_emulate_function_pointer_casts.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_emulate_function_pointer_casts.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_erf.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_erf.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_erf.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_errar.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_errar.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_errar.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_2.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_2.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_2.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_alias.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_alias.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_convert.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_convert.txt (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_convert.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_destroy_virtual.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_destroy_virtual.txt (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_destroy_virtual.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_libcxx.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_libcxx.txt (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_libcxx.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_multi.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_multi.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_multi.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_multiple_inherit.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_multiple_inherit.txt (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_multiple_inherit.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_multiple_inherit_rethrow.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_multiple_inherit_rethrow.txt (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_multiple_inherit_rethrow.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_primary.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_primary.txt (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_primary.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_refcount.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_refcount.txt (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_refcount.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_resume.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_resume.txt (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_resume.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_rethrow.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_rethrow.txt (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_rethrow.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_simplify_cfg.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_simplify_cfg.txt (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_simplify_cfg.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_std.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_std.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_std.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_typed.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_typed.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_virtual_inheritance.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_virtual_inheritance.txt (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_virtual_inheritance.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_white_list.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_white_list.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_white_list.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_white_list_2.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_white_list_2.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_exceptions_white_list_empty.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_execvp.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_execvp.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_execvp.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_execvp_windows.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_execvp_windows.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_fakestat.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_fakestat.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_fast_math.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_fast_math.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_fast_math.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_fcvt.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_fcvt.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_flexarray_struct.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_flexarray_struct.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_flexarray_struct.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_float32_precise.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_float32_precise.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_float32_precise.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_float_builtins.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_float_builtins.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_float_builtins.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_floatvars.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_floatvars.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_frexp.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_frexp.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_frexp.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_funcptr.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_funcptr.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_funcptr.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_funcptr_import_type.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_funcptr_import_type.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_funcptr_namecollide.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_funcptr_namecollide.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_funcptr_namecollide.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_funcptrfunc.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_funcptrfunc.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_funcptrfunc.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_funcs.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_funcs.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_funcs.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_functionpointer_libfunc_varargs.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_functionpointer_libfunc_varargs.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_functionpointer_libfunc_varargs.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_fwrite_0.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_fwrite_0.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_fwrite_0.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_getcwd.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_getcwd.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_getcwd.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_getgep.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_getgep.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_getgep.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_getloadavg.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_getloadavg.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_getloadavg.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_getopt.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_getopt.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_getopt.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_getopt_long.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_getopt_long.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_getopt_long.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_globaldoubles.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_globaldoubles.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_globaldoubles.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_globals.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_globals.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_globals.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_gmtime.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_gmtime.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_gmtime.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_hello_world.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_hello_world.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_hello_world.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i16_emcc_intrinsic.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i16_emcc_intrinsic.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i16_emcc_intrinsic.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i32_mul_precise.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i32_mul_precise.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i32_mul_precise.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_2.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_2.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_3.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_3.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_4.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_4.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_4.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_7z.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_7z.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_7z.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_b.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_b.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_cmp.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_cmp.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_cmp2.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_cmp2.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_cmp2.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_double.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_double.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_i16.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_i16.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_i16.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_llabs.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_llabs.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_llabs.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_precise.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_precise.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_precise.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_precise_needed.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_precise_needed.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_precise_needed.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_precise_unneeded.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_precise_unneeded.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_precise_unneeded.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_qdouble.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_qdouble.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_qdouble.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_umul.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_umul.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_umul.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_varargs.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_varargs.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_varargs.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_zextneg.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_zextneg.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_i64_zextneg.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_if.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_if.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_if.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_if_else.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_if_else.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_if_else.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_indirectbr.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_indirectbr.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_indirectbr.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_indirectbr_many.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_indirectbr_many.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_indirectbr_many.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_inherit.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_inherit.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_inlinejs.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_inlinejs.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_inlinejs2.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_inlinejs2.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_inlinejs3.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_inlinejs3.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_intentional_fault.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_intentional_fault.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_intvars.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_intvars.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_isdigit_l.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_isdigit_l.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_isnan.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_isnan.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_isnan.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_istream.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_istream.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_iswdigit.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_iswdigit.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_libcextra.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_libcextra.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_libcextra.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_libgen.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_libgen.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_libgen.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_linked_list.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_linked_list.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_literal_negative_zero.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_literal_negative_zero.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_literal_negative_zero.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_llrint.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_llrint.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_llrint.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_llvm_fabs.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_llvm_fabs.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_llvm_fabs.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_llvm_intrinsics.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_llvm_intrinsics.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_llvm_intrinsics.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_llvm_used.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_llvm_used.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_llvmswitch.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_llvmswitch.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_llvmswitch.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_longjmp.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_longjmp.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_longjmp.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_longjmp2.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_longjmp2.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_longjmp2.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_longjmp3.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_longjmp3.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_longjmp3.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_longjmp4.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_longjmp4.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_longjmp4.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_longjmp_exc.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_longjmp_exc.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_longjmp_exc.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_longjmp_funcptr.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_longjmp_funcptr.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_longjmp_funcptr.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_longjmp_repeat.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_longjmp_repeat.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_longjmp_repeat.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_longjmp_stacked.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_longjmp_stacked.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_longjmp_stacked.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_longjmp_throw.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_longjmp_throw.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_longjmp_throw.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_longjmp_unwind.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_longjmp_unwind.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_longjmp_unwind.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_loop.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_loop.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_loop.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_lower_intrinsics.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_lower_intrinsics.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_lower_intrinsics.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_main_module_static_align.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_main_module_static_align.txt (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_main_module_static_align.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_main_thread_async_em_asm.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_main_thread_async_em_asm.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_main_thread_async_em_asm.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_mainenv.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_mainenv.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_mainenv.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_math.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_math.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_mathfuncptr.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_mathfuncptr.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_mathfuncptr.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_memcpy2.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_memcpy2.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_memcpy2.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_memcpy3.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_memcpy3.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_memcpy3.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_memcpy_memcmp.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_memcpy_memcmp.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_memcpy_memcmp.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_memmove.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_memmove.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_memmove.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_memmove2.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_memmove2.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_memmove2.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_memmove3.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_memmove3.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_memmove3.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_memorygrowth.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_memorygrowth.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_memorygrowth_2.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_memorygrowth_2.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_memorygrowth_3.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_memorygrowth_3.txt (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_memorygrowth_3.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_memorygrowth_wasm_mem_max.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_memorygrowth_wasm_mem_max.txt (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_memorygrowth_wasm_mem_max.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_memset.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_memset.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_memset.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_mmap.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_mmap.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_mmap.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_mod_globalstruct.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_mod_globalstruct.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_negative_zero.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_negative_zero.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_negative_zero.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_nested_struct_varargs.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_nested_struct_varargs.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_nested_struct_varargs.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_nl_types.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_nl_types.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_nl_types.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_perrar.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_perrar.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_perrar.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_phiundef.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_phiundef.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_phiundef.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_pipe.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_pipe.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_pipe.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_poll.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_poll.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_poll.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_polymorph.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_polymorph.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_posixtime.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_posixtime.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_posixtime.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_posixtime_no_monotonic.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_printf_2.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_printf_2.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_printf_2.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_printf_more.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_printf_more.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_printf_more.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_ptrtoint.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_random_device.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_random_device.txt (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_regex.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_regex.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_regex.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_reinterpreted_ptrs.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_reinterpreted_ptrs.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_relocatable_void_function.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_relocatable_void_function.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_relocatable_void_function.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_rounding.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_rounding.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_rounding.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_runtime_stacksave.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_runtime_stacksave.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_set_align.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_set_align.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_set_align.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_siglongjmp.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_siglongjmp.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_siglongjmp.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd10.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd10.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd11.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd11.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd12.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd12.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd13.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd13.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd14.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd14.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd15.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd15.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd16.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd16.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd2.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd2.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd3.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd3.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd4.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd4.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd5.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd5.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd6.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd6.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd7.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd7.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd8.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd8.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd9.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd9.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd_dyncall.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd_dyncall.txt (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd_float32x4.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd_float32x4.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd_float64x2.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd_float64x2.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd_int16x8.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd_int16x8.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd_int32x4.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd_int32x4.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd_int8x16.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd_int8x16.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd_set_epi64x.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd_set_epi64x.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd_shift_right.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd_shift_right.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd_sitofp.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_simd_sitofp.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sintvars.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sintvars.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sintvars.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sizeof.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sizeof.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sizeof.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf_3.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf_3.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf_3.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf_4.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf_4.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf_4.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf_5.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf_5.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf_5.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf_6.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf_6.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf_6.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf_caps.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf_caps.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf_caps.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf_float.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf_float.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf_float.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf_hex.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf_hex.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf_hex.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf_n.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf_n.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf_n.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf_other_whitespace.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf_other_whitespace.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf_other_whitespace.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf_skip.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf_skip.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf_skip.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf_whitespace.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf_whitespace.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_sscanf_whitespace.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_stack.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_stack.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_stack_align.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_stack_align.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_stack_byval.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_stack_byval.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_stack_restore.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_stack_restore.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_stack_varargs.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_stack_varargs.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_stack_varargs.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_stack_void.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_stack_void.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_stack_void.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_static_variable.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_static_variable.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_statics.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_statics.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_statvfs.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_statvfs.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_statvfs.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_std_cout_new.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_std_cout_new.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_std_cout_new.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_stdlibs.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_stdlibs.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_stdvec.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_stdvec.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strcasecmp.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strcasecmp.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strcasecmp.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strcmp_uni.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strcmp_uni.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strcmp_uni.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strftime.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strftime.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strftime.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strings.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strings.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strings.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strndup.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strndup.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strndup.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strptime_days.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strptime_days.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strptime_days.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strptime_reentrant.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strptime_reentrant.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strptime_reentrant.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strptime_tm.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strptime_tm.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strstr.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strstr.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strstr.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strtod.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strtod.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strtod.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strtok.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strtok.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strtok.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strtol_bin.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strtol_bin.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strtol_bin.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strtol_dec.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strtol_dec.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strtol_dec.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strtol_hex.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strtol_hex.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strtol_hex.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strtol_oct.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strtol_oct.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strtol_oct.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strtold.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strtold.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strtold.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strtoll_bin.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strtoll_bin.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strtoll_bin.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strtoll_dec.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strtoll_dec.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strtoll_dec.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strtoll_hex.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strtoll_hex.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strtoll_hex.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strtoll_oct.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strtoll_oct.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_strtoll_oct.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_struct_varargs.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_struct_varargs.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_struct_varargs.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_structs.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_structs.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_time_c.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_time_c.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_time_c.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_timeb.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_timeb.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_tinyfuncstr.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_tinyfuncstr.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_tracing.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_tracing.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_tracing.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_transtrcase.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_transtrcase.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_transtrcase.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_trickystring.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_trickystring.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_trickystring.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_typeid.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_typeid.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_uname.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_uname.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_uname.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_unary_literal.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_unary_literal.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_unary_literal.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_utf.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_utf.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_utf.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_varargs.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_varargs.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_varargs.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_varargs_multi.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_varargs_multi.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_varargs_multi.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_vfs.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_vfs.md (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_vfs.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_vfs.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_vfs_bundle.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_vfs_data.txt (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_vprintf.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_vprintf.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_vprintf.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_vsnprintf.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_vsnprintf.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_vsnprintf.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_wprintf.cpp (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_wprintf.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_wprintf.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_write_stdout_fileno.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_write_stdout_fileno.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_write_stdout_fileno.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_zero_multiplication.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_zero_multiplication.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_zero_multiplication.wasm (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_zerodiv.c (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_zerodiv.out (100%) rename {lib/emscripten-tests => tests/emscripten_resources}/emtests/test_zerodiv.wasm (100%) rename {lib/emscripten-tests/src/tests => tests/emscripten_resources}/is_emscripten_false.wast (100%) rename {lib/emscripten-tests/src/tests => tests/emscripten_resources}/is_emscripten_true.wast (100%) rename {lib/emscripten-tests/tests => tests}/emtest.rs (100%) rename {lib/emscripten-tests/tests => tests}/emtests/_common.rs (100%) create mode 100644 tests/emtests/clock_gettime.rs rename {lib/emscripten-tests/tests => tests}/emtests/emscripten_get_compiler_setting.rs (50%) create mode 100644 tests/emtests/env.rs rename {lib/emscripten-tests/tests => tests}/emtests/fs_exports.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/getvalue_setvalue.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/legacy_exported_runtime_numbers.rs (50%) create mode 100644 tests/emtests/localtime.rs rename {lib/emscripten-tests/tests => tests}/emtests/mod.rs (98%) rename {lib/emscripten-tests/tests => tests}/emtests/modularize_closure_pre.rs (50%) create mode 100644 tests/emtests/printf.rs create mode 100644 tests/emtests/puts.rs rename {lib/emscripten-tests/tests => tests}/emtests/stackalloc.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/syscalls.rs (100%) create mode 100644 tests/emtests/test_addr_of_stacked.rs create mode 100644 tests/emtests/test_alloca.rs create mode 100644 tests/emtests/test_alloca_stack.rs create mode 100644 tests/emtests/test_array2.rs create mode 100644 tests/emtests/test_array2b.rs create mode 100644 tests/emtests/test_atomic.rs create mode 100644 tests/emtests/test_atox.rs create mode 100644 tests/emtests/test_bsearch.rs rename {lib/emscripten-tests/tests => tests}/emtests/test_ccall.rs (50%) create mode 100644 tests/emtests/test_complex.rs rename {lib/emscripten-tests/tests => tests}/emtests/test_demangle_stacks.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_demangle_stacks_noassert.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_dlmalloc_partial_2.rs (50%) create mode 100644 tests/emtests/test_double_varargs.rs rename {lib/emscripten-tests/tests => tests}/emtests/test_em_asm.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_em_asm_2.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_em_asm_parameter_pack.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_em_asm_signatures.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_em_asm_unicode.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_em_asm_unused_arguments.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_em_js.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_emscripten_api.rs (50%) create mode 100644 tests/emtests/test_erf.rs create mode 100644 tests/emtests/test_errar.rs rename {lib/emscripten-tests/tests => tests}/emtests/test_exceptions_2.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_exceptions_multi.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_exceptions_std.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_exceptions_white_list.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_execvp.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_fast_math.rs (50%) create mode 100644 tests/emtests/test_flexarray_struct.rs create mode 100644 tests/emtests/test_float32_precise.rs rename {lib/emscripten-tests/tests => tests}/emtests/test_float_builtins.rs (50%) create mode 100644 tests/emtests/test_frexp.rs create mode 100644 tests/emtests/test_funcptr.rs create mode 100644 tests/emtests/test_funcptr_namecollide.rs create mode 100644 tests/emtests/test_funcptrfunc.rs create mode 100644 tests/emtests/test_funcs.rs create mode 100644 tests/emtests/test_functionpointer_libfunc_varargs.rs create mode 100644 tests/emtests/test_fwrite_0.rs create mode 100644 tests/emtests/test_getcwd.rs create mode 100644 tests/emtests/test_getgep.rs rename {lib/emscripten-tests/tests => tests}/emtests/test_getloadavg.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_getopt.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_getopt_long.rs (50%) create mode 100644 tests/emtests/test_globaldoubles.rs create mode 100644 tests/emtests/test_globals.rs rename {lib/emscripten-tests/tests => tests}/emtests/test_gmtime.rs (50%) create mode 100644 tests/emtests/test_hello_world.rs rename {lib/emscripten-tests/tests => tests}/emtests/test_i16_emcc_intrinsic.rs (50%) create mode 100644 tests/emtests/test_i32_mul_precise.rs rename {lib/emscripten-tests/tests => tests}/emtests/test_i64.rs (50%) create mode 100644 tests/emtests/test_i64_4.rs rename {lib/emscripten-tests/tests => tests}/emtests/test_i64_7z.rs (50%) create mode 100644 tests/emtests/test_i64_cmp2.rs create mode 100644 tests/emtests/test_i64_i16.rs create mode 100644 tests/emtests/test_i64_llabs.rs create mode 100644 tests/emtests/test_i64_precise.rs create mode 100644 tests/emtests/test_i64_precise_needed.rs create mode 100644 tests/emtests/test_i64_precise_unneeded.rs create mode 100644 tests/emtests/test_i64_qdouble.rs create mode 100644 tests/emtests/test_i64_umul.rs rename {lib/emscripten-tests/tests => tests}/emtests/test_i64_varargs.rs (50%) create mode 100644 tests/emtests/test_i64_zextneg.rs create mode 100644 tests/emtests/test_if.rs create mode 100644 tests/emtests/test_if_else.rs create mode 100644 tests/emtests/test_indirectbr.rs rename {lib/emscripten-tests/tests => tests}/emtests/test_indirectbr_many.rs (50%) create mode 100644 tests/emtests/test_isnan.rs create mode 100644 tests/emtests/test_libcextra.rs create mode 100644 tests/emtests/test_libgen.rs create mode 100644 tests/emtests/test_literal_negative_zero.rs create mode 100644 tests/emtests/test_llrint.rs create mode 100644 tests/emtests/test_llvm_fabs.rs rename {lib/emscripten-tests/tests => tests}/emtests/test_llvm_intrinsics.rs (50%) create mode 100644 tests/emtests/test_llvmswitch.rs create mode 100644 tests/emtests/test_longjmp.rs create mode 100644 tests/emtests/test_longjmp2.rs create mode 100644 tests/emtests/test_longjmp3.rs create mode 100644 tests/emtests/test_longjmp4.rs rename {lib/emscripten-tests/tests => tests}/emtests/test_longjmp_exc.rs (50%) create mode 100644 tests/emtests/test_longjmp_funcptr.rs create mode 100644 tests/emtests/test_longjmp_repeat.rs create mode 100644 tests/emtests/test_longjmp_stacked.rs create mode 100644 tests/emtests/test_longjmp_throw.rs create mode 100644 tests/emtests/test_longjmp_unwind.rs create mode 100644 tests/emtests/test_loop.rs rename {lib/emscripten-tests/tests => tests}/emtests/test_lower_intrinsics.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_main_thread_async_em_asm.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_mainenv.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_mathfuncptr.rs (50%) create mode 100644 tests/emtests/test_memcpy2.rs create mode 100644 tests/emtests/test_memcpy3.rs rename {lib/emscripten-tests/tests => tests}/emtests/test_memcpy_memcmp.rs (50%) create mode 100644 tests/emtests/test_memmove.rs create mode 100644 tests/emtests/test_memmove2.rs create mode 100644 tests/emtests/test_memmove3.rs create mode 100644 tests/emtests/test_memset.rs rename {lib/emscripten-tests/tests => tests}/emtests/test_mmap.rs (50%) create mode 100644 tests/emtests/test_negative_zero.rs create mode 100644 tests/emtests/test_nested_struct_varargs.rs rename {lib/emscripten-tests/tests => tests}/emtests/test_nl_types.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_perrar.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_phiundef.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_pipe.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_poll.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_posixtime.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_printf_2.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_printf_more.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_regex.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_relocatable_void_function.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_rounding.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_set_align.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_siglongjmp.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_sintvars.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_sizeof.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_sscanf.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_sscanf_3.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_sscanf_4.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_sscanf_5.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_sscanf_6.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_sscanf_caps.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_sscanf_float.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_sscanf_hex.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_sscanf_n.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_sscanf_other_whitespace.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_sscanf_skip.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_sscanf_whitespace.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_stack_varargs.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_stack_void.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_statvfs.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_std_cout_new.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_strcasecmp.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_strcmp_uni.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_strftime.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_strings.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_strndup.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_strptime_days.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_strptime_reentrant.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_strstr.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_strtod.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_strtok.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_strtol_bin.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_strtol_dec.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_strtol_hex.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_strtol_oct.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_strtold.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_strtoll_bin.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_strtoll_dec.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_strtoll_hex.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_strtoll_oct.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_struct_varargs.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_time_c.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_tracing.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_transtrcase.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_trickystring.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_uname.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_unary_literal.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_utf.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_varargs.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_varargs_multi.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_vfs.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_vprintf.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_vsnprintf.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_wprintf.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_write_stdout_fileno.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_zero_multiplication.rs (50%) rename {lib/emscripten-tests/tests => tests}/emtests/test_zerodiv.rs (50%) create mode 100644 tests/generate-emscripten-tests/Cargo.toml rename {lib/emscripten-tests/build => tests/generate-emscripten-tests/src}/emtests.rs (82%) rename lib/emscripten-tests/build/mod.rs => tests/generate-emscripten-tests/src/lib.rs (71%) diff --git a/Cargo.lock b/Cargo.lock index 2c1dd2b47be..411584b20be 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -753,6 +753,14 @@ version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" +[[package]] +name = "generate-emscripten-tests" +version = "0.16.2" +dependencies = [ + "glob 0.3.0", + "tempfile", +] + [[package]] name = "generate-wasi-tests" version = "0.16.2" @@ -2742,6 +2750,7 @@ dependencies = [ "criterion", "errno", "fern", + "generate-emscripten-tests", "generate-wasi-tests", "glob 0.3.0", "log", @@ -2754,7 +2763,6 @@ dependencies = [ "wasmer-clif-backend", "wasmer-dev-utils", "wasmer-emscripten", - "wasmer-emscripten-tests", "wasmer-kernel-loader", "wasmer-llvm-backend", "wasmer-middleware-common", @@ -2836,20 +2844,6 @@ dependencies = [ "wasmer-runtime-core", ] -[[package]] -name = "wasmer-emscripten-tests" -version = "0.16.2" -dependencies = [ - "glob 0.3.0", - "wabt", - "wasmer-clif-backend", - "wasmer-dev-utils", - "wasmer-emscripten", - "wasmer-llvm-backend", - "wasmer-runtime", - "wasmer-singlepass-backend", -] - [[package]] name = "wasmer-interface-types" version = "0.16.2" diff --git a/Cargo.toml b/Cargo.toml index 94254f7b181..b339becb3d1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -38,7 +38,6 @@ wasmer-llvm-backend = { path = "lib/llvm-backend", optional = true } wasmer-wasi = { path = "lib/wasi", optional = true } wasmer-kernel-loader = { path = "lib/kernel-loader", optional = true } wasmer-dev-utils = { path = "lib/dev-utils", optional = true } -wasmer-emscripten-tests = { path = "lib/emscripten-tests", optional = true } wasmer-wasi-experimental-io-devices = { path = "lib/wasi-experimental-io-devices", optional = true } [workspace] @@ -59,16 +58,17 @@ members = [ "lib/kernel-net", "lib/dev-utils", "lib/wasi-experimental-io-devices", - "lib/emscripten-tests", "lib/interface-types", "examples/parallel", "examples/plugin-for-example", "examples/parallel-guest", "tests/generate-wasi-tests", + "tests/generate-emscripten-tests", ] [build-dependencies] wabt = "0.9.1" +generate-emscripten-tests = { path = "tests/generate-emscripten-tests" } generate-wasi-tests = { path = "tests/generate-wasi-tests" } glob = "0.3" rustc_version = "0.2" diff --git a/build.rs b/build.rs index b0df199eeaa..4f74ecfff9f 100644 --- a/build.rs +++ b/build.rs @@ -2,8 +2,10 @@ //! //! Please try to keep this file as clean as possible. +use generate_emscripten_tests; use generate_wasi_tests; fn main() { generate_wasi_tests::build(); + generate_emscripten_tests::build(); } diff --git a/lib/dev-utils/src/stdio.rs b/lib/dev-utils/src/stdio.rs index 2b95bafc7ac..3ddea90fd14 100644 --- a/lib/dev-utils/src/stdio.rs +++ b/lib/dev-utils/src/stdio.rs @@ -1,5 +1,6 @@ use super::file_descriptor::FileDescriptor; use libc; +use std::io; use std::io::BufReader; use std::io::Read; @@ -21,39 +22,76 @@ const STDOUT_FILENO: libc::c_int = 1; #[cfg(target_os = "windows")] const STDERR_FILENO: libc::c_int = 2; +fn pipe(ptr: *mut libc::c_int) -> Result { + #[cfg(not(target_os = "windows"))] + let result = unsafe { libc::pipe(ptr) }; + #[cfg(target_os = "windows")] + let result = unsafe { libc::pipe(ptr, 1000, libc::O_TEXT) }; + + if result == -1 { + Err(std::io::Error::last_os_error()) + } else { + Ok(result) + } +} + +/// `dup` creates a new `fd`, make sure you `close` it when you're done with it!! +fn dup(oldfd: libc::c_int) -> Result { + let result = unsafe { libc::dup(oldfd) }; + + if result == -1 { + Err(std::io::Error::last_os_error()) + } else { + Ok(result) + } +} + +fn dup2(oldfd: libc::c_int, newfd: libc::c_int) -> Result { + let result = unsafe { libc::dup2(oldfd, newfd) }; + + if result == -1 { + Err(std::io::Error::last_os_error()) + } else { + Ok(result) + } +} + +fn close(fd: libc::c_int) -> Result { + let result = unsafe { libc::close(fd) }; + + if result == -1 { + Err(std::io::Error::last_os_error()) + } else { + Ok(result) + } +} + // Implementation inspired in // https://github.com/rust-lang/rust/blob/7d52cbce6db83e4fc2d8706b4e4b9c7da76cbcf8/src/test/run-pass/issues/issue-30490.rs // Currently only works in Unix systems (Mac, Linux) impl StdioCapturer { fn pipe() -> (libc::c_int, libc::c_int) { let mut fds = [0; 2]; - - #[cfg(not(target_os = "windows"))] - assert_eq!(unsafe { libc::pipe(fds.as_mut_ptr()) }, 0); - #[cfg(target_os = "windows")] - assert_eq!( - unsafe { libc::pipe(fds.as_mut_ptr(), 1000, libc::O_TEXT) }, - 0 - ); + pipe(fds.as_mut_ptr()).unwrap(); (fds[0], fds[1]) } pub fn new() -> Self { - let stdout_backup = unsafe { libc::dup(STDOUT_FILENO) }; - let stderr_backup = unsafe { libc::dup(STDERR_FILENO) }; + let stdout_backup = dup(STDOUT_FILENO).unwrap(); + let stderr_backup = dup(STDERR_FILENO).unwrap(); let (stdout_reader, stdout_writer) = Self::pipe(); let (stderr_reader, stderr_writer) = Self::pipe(); - assert!(unsafe { libc::dup2(stdout_writer, STDOUT_FILENO) } > -1); - assert!(unsafe { libc::dup2(stderr_writer, STDERR_FILENO) } > -1); + dup2(stdout_writer, STDOUT_FILENO).unwrap(); + dup2(stderr_writer, STDERR_FILENO).unwrap(); // Make sure we close any duplicates of the writer end of the pipe, // otherwise we can get stuck reading from the pipe which has open // writers but no one supplying any input - assert_eq!(unsafe { libc::close(stdout_writer) }, 0); - assert_eq!(unsafe { libc::close(stderr_writer) }, 0); + close(stdout_writer).unwrap(); + close(stderr_writer).unwrap(); StdioCapturer { stdout_backup, @@ -64,11 +102,11 @@ impl StdioCapturer { } pub fn end(self) -> Result<(String, String), std::io::Error> { - // The Stdio passed into the Command took over (and closed) std{out, err} - // so we should restore them as they were. + dup2(self.stdout_backup, STDOUT_FILENO).unwrap(); + dup2(self.stderr_backup, STDERR_FILENO).unwrap(); - assert!(unsafe { libc::dup2(self.stdout_backup, STDOUT_FILENO) } > -1); - assert!(unsafe { libc::dup2(self.stderr_backup, STDERR_FILENO) } > -1); + close(self.stdout_backup).unwrap(); + close(self.stderr_backup).unwrap(); let fd = FileDescriptor::new(self.stdout_reader); let mut reader = BufReader::new(fd); diff --git a/lib/emscripten-tests/Cargo.toml b/lib/emscripten-tests/Cargo.toml deleted file mode 100644 index 5065de08ab5..00000000000 --- a/lib/emscripten-tests/Cargo.toml +++ /dev/null @@ -1,28 +0,0 @@ -[package] -name = "wasmer-emscripten-tests" -version = "0.16.2" -description = "Tests for our Emscripten implementation" -license = "MIT" -authors = ["The Wasmer Engineering Team "] -edition = "2018" -publish = false -build = "build/mod.rs" - -[dependencies] -wasmer-emscripten = { path = "../emscripten", version = "0.16.2" } -wasmer-runtime = { path = "../runtime", version = "0.16.2", default-features = false } -wasmer-clif-backend = { path = "../clif-backend", version = "0.16.2", optional = true} -wasmer-llvm-backend = { path = "../llvm-backend", version = "0.16.2", optional = true, features = ["test"] } -wasmer-singlepass-backend = { path = "../singlepass-backend", version = "0.16.2", optional = true } - -[dev-dependencies] -wabt = "0.9.1" -wasmer-dev-utils = { path = "../dev-utils", version = "0.16.2"} - -[build-dependencies] -glob = "0.3" - -[features] -clif = ["wasmer-clif-backend", "wasmer-runtime/default-backend-cranelift"] -singlepass = ["wasmer-singlepass-backend", "wasmer-runtime/default-backend-singlepass"] -llvm = ["wasmer-llvm-backend", "wasmer-runtime/default-backend-llvm"] diff --git a/lib/emscripten-tests/a.txt b/lib/emscripten-tests/a.txt deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/lib/emscripten-tests/tests/emtests/clock_gettime.rs b/lib/emscripten-tests/tests/emtests/clock_gettime.rs deleted file mode 100644 index b4140e76bd8..00000000000 --- a/lib/emscripten-tests/tests/emtests/clock_gettime.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_clock_gettime() { - assert_emscripten_output!( - "../../emtests/clock_gettime.wasm", - "clock_gettime", - vec![], - "../../emtests/clock_gettime.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/env.rs b/lib/emscripten-tests/tests/emtests/env.rs deleted file mode 100644 index b67e176cce9..00000000000 --- a/lib/emscripten-tests/tests/emtests/env.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_env() { - assert_emscripten_output!( - "../../emtests/env.wasm", - "env", - vec![], - "../../emtests/env.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/localtime.rs b/lib/emscripten-tests/tests/emtests/localtime.rs deleted file mode 100644 index 938c8b1591b..00000000000 --- a/lib/emscripten-tests/tests/emtests/localtime.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_localtime() { - assert_emscripten_output!( - "../../emtests/localtime.wasm", - "localtime", - vec![], - "../../emtests/localtime.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/printf.rs b/lib/emscripten-tests/tests/emtests/printf.rs deleted file mode 100644 index 6f5da28f1b4..00000000000 --- a/lib/emscripten-tests/tests/emtests/printf.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_printf() { - assert_emscripten_output!( - "../../emtests/printf.wasm", - "printf", - vec![], - "../../emtests/printf.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/puts.rs b/lib/emscripten-tests/tests/emtests/puts.rs deleted file mode 100644 index 7348a303383..00000000000 --- a/lib/emscripten-tests/tests/emtests/puts.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_puts() { - assert_emscripten_output!( - "../../emtests/puts.wasm", - "puts", - vec![], - "../../emtests/puts.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_addr_of_stacked.rs b/lib/emscripten-tests/tests/emtests/test_addr_of_stacked.rs deleted file mode 100644 index cced39cc188..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_addr_of_stacked.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_addr_of_stacked() { - assert_emscripten_output!( - "../../emtests/test_addr_of_stacked.wasm", - "test_addr_of_stacked", - vec![], - "../../emtests/test_addr_of_stacked.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_alloca.rs b/lib/emscripten-tests/tests/emtests/test_alloca.rs deleted file mode 100644 index d7debe03335..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_alloca.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_alloca() { - assert_emscripten_output!( - "../../emtests/test_alloca.wasm", - "test_alloca", - vec![], - "../../emtests/test_alloca.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_alloca_stack.rs b/lib/emscripten-tests/tests/emtests/test_alloca_stack.rs deleted file mode 100644 index aa0dffa0f24..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_alloca_stack.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_alloca_stack() { - assert_emscripten_output!( - "../../emtests/test_alloca_stack.wasm", - "test_alloca_stack", - vec![], - "../../emtests/test_alloca_stack.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_array2.rs b/lib/emscripten-tests/tests/emtests/test_array2.rs deleted file mode 100644 index a5f32b2e0e8..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_array2.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_array2() { - assert_emscripten_output!( - "../../emtests/test_array2.wasm", - "test_array2", - vec![], - "../../emtests/test_array2.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_array2b.rs b/lib/emscripten-tests/tests/emtests/test_array2b.rs deleted file mode 100644 index d91952685de..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_array2b.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_array2b() { - assert_emscripten_output!( - "../../emtests/test_array2b.wasm", - "test_array2b", - vec![], - "../../emtests/test_array2b.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_atomic.rs b/lib/emscripten-tests/tests/emtests/test_atomic.rs deleted file mode 100644 index b7cea7ca553..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_atomic.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_atomic() { - assert_emscripten_output!( - "../../emtests/test_atomic.wasm", - "test_atomic", - vec![], - "../../emtests/test_atomic.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_atox.rs b/lib/emscripten-tests/tests/emtests/test_atox.rs deleted file mode 100644 index 8b5823eb80f..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_atox.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_atox() { - assert_emscripten_output!( - "../../emtests/test_atoX.wasm", - "test_atox", - vec![], - "../../emtests/test_atoX.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_bsearch.rs b/lib/emscripten-tests/tests/emtests/test_bsearch.rs deleted file mode 100644 index 0327408014c..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_bsearch.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_bsearch() { - assert_emscripten_output!( - "../../emtests/test_bsearch.wasm", - "test_bsearch", - vec![], - "../../emtests/test_bsearch.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_complex.rs b/lib/emscripten-tests/tests/emtests/test_complex.rs deleted file mode 100644 index 78bfcbd7fc4..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_complex.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_complex() { - assert_emscripten_output!( - "../../emtests/test_complex.wasm", - "test_complex", - vec![], - "../../emtests/test_complex.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_double_varargs.rs b/lib/emscripten-tests/tests/emtests/test_double_varargs.rs deleted file mode 100644 index 5d485532c6c..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_double_varargs.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_double_varargs() { - assert_emscripten_output!( - "../../emtests/test_double_varargs.wasm", - "test_double_varargs", - vec![], - "../../emtests/test_double_varargs.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_erf.rs b/lib/emscripten-tests/tests/emtests/test_erf.rs deleted file mode 100644 index 638430d78fe..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_erf.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_erf() { - assert_emscripten_output!( - "../../emtests/test_erf.wasm", - "test_erf", - vec![], - "../../emtests/test_erf.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_errar.rs b/lib/emscripten-tests/tests/emtests/test_errar.rs deleted file mode 100644 index 7ac7da0d7b7..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_errar.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_errar() { - assert_emscripten_output!( - "../../emtests/test_errar.wasm", - "test_errar", - vec![], - "../../emtests/test_errar.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_flexarray_struct.rs b/lib/emscripten-tests/tests/emtests/test_flexarray_struct.rs deleted file mode 100644 index f07a0658025..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_flexarray_struct.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_flexarray_struct() { - assert_emscripten_output!( - "../../emtests/test_flexarray_struct.wasm", - "test_flexarray_struct", - vec![], - "../../emtests/test_flexarray_struct.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_float32_precise.rs b/lib/emscripten-tests/tests/emtests/test_float32_precise.rs deleted file mode 100644 index 8f79d6ae0f7..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_float32_precise.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_float32_precise() { - assert_emscripten_output!( - "../../emtests/test_float32_precise.wasm", - "test_float32_precise", - vec![], - "../../emtests/test_float32_precise.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_frexp.rs b/lib/emscripten-tests/tests/emtests/test_frexp.rs deleted file mode 100644 index 3ef3514fbac..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_frexp.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_frexp() { - assert_emscripten_output!( - "../../emtests/test_frexp.wasm", - "test_frexp", - vec![], - "../../emtests/test_frexp.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_funcptr.rs b/lib/emscripten-tests/tests/emtests/test_funcptr.rs deleted file mode 100644 index a6b1831e33c..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_funcptr.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_funcptr() { - assert_emscripten_output!( - "../../emtests/test_funcptr.wasm", - "test_funcptr", - vec![], - "../../emtests/test_funcptr.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_funcptr_namecollide.rs b/lib/emscripten-tests/tests/emtests/test_funcptr_namecollide.rs deleted file mode 100644 index 310e6f5af72..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_funcptr_namecollide.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_funcptr_namecollide() { - assert_emscripten_output!( - "../../emtests/test_funcptr_namecollide.wasm", - "test_funcptr_namecollide", - vec![], - "../../emtests/test_funcptr_namecollide.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_funcptrfunc.rs b/lib/emscripten-tests/tests/emtests/test_funcptrfunc.rs deleted file mode 100644 index 0cddd51e706..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_funcptrfunc.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_funcptrfunc() { - assert_emscripten_output!( - "../../emtests/test_funcptrfunc.wasm", - "test_funcptrfunc", - vec![], - "../../emtests/test_funcptrfunc.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_funcs.rs b/lib/emscripten-tests/tests/emtests/test_funcs.rs deleted file mode 100644 index 3faa4dc2e96..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_funcs.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_funcs() { - assert_emscripten_output!( - "../../emtests/test_funcs.wasm", - "test_funcs", - vec![], - "../../emtests/test_funcs.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_functionpointer_libfunc_varargs.rs b/lib/emscripten-tests/tests/emtests/test_functionpointer_libfunc_varargs.rs deleted file mode 100644 index 54f7a9a6ca6..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_functionpointer_libfunc_varargs.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_functionpointer_libfunc_varargs() { - assert_emscripten_output!( - "../../emtests/test_functionpointer_libfunc_varargs.wasm", - "test_functionpointer_libfunc_varargs", - vec![], - "../../emtests/test_functionpointer_libfunc_varargs.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_fwrite_0.rs b/lib/emscripten-tests/tests/emtests/test_fwrite_0.rs deleted file mode 100644 index 4c72ff0f7a7..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_fwrite_0.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_fwrite_0() { - assert_emscripten_output!( - "../../emtests/test_fwrite_0.wasm", - "test_fwrite_0", - vec![], - "../../emtests/test_fwrite_0.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_getcwd.rs b/lib/emscripten-tests/tests/emtests/test_getcwd.rs deleted file mode 100644 index 98723df87bb..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_getcwd.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_getcwd() { - assert_emscripten_output!( - "../../emtests/test_getcwd.wasm", - "test_getcwd", - vec![], - "../../emtests/test_getcwd.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_getgep.rs b/lib/emscripten-tests/tests/emtests/test_getgep.rs deleted file mode 100644 index 89d09bd81cf..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_getgep.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_getgep() { - assert_emscripten_output!( - "../../emtests/test_getgep.wasm", - "test_getgep", - vec![], - "../../emtests/test_getgep.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_globaldoubles.rs b/lib/emscripten-tests/tests/emtests/test_globaldoubles.rs deleted file mode 100644 index dbe8b5867ff..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_globaldoubles.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_globaldoubles() { - assert_emscripten_output!( - "../../emtests/test_globaldoubles.wasm", - "test_globaldoubles", - vec![], - "../../emtests/test_globaldoubles.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_globals.rs b/lib/emscripten-tests/tests/emtests/test_globals.rs deleted file mode 100644 index f004409fa07..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_globals.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_globals() { - assert_emscripten_output!( - "../../emtests/test_globals.wasm", - "test_globals", - vec![], - "../../emtests/test_globals.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_hello_world.rs b/lib/emscripten-tests/tests/emtests/test_hello_world.rs deleted file mode 100644 index 5e5ba13601c..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_hello_world.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_hello_world() { - assert_emscripten_output!( - "../../emtests/test_hello_world.wasm", - "test_hello_world", - vec![], - "../../emtests/test_hello_world.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_i32_mul_precise.rs b/lib/emscripten-tests/tests/emtests/test_i32_mul_precise.rs deleted file mode 100644 index 1ec564a1987..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_i32_mul_precise.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_i32_mul_precise() { - assert_emscripten_output!( - "../../emtests/test_i32_mul_precise.wasm", - "test_i32_mul_precise", - vec![], - "../../emtests/test_i32_mul_precise.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_i64_4.rs b/lib/emscripten-tests/tests/emtests/test_i64_4.rs deleted file mode 100644 index 4fae69a4d8f..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_i64_4.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_i64_4() { - assert_emscripten_output!( - "../../emtests/test_i64_4.wasm", - "test_i64_4", - vec![], - "../../emtests/test_i64_4.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_i64_cmp2.rs b/lib/emscripten-tests/tests/emtests/test_i64_cmp2.rs deleted file mode 100644 index d94f52983f0..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_i64_cmp2.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_i64_cmp2() { - assert_emscripten_output!( - "../../emtests/test_i64_cmp2.wasm", - "test_i64_cmp2", - vec![], - "../../emtests/test_i64_cmp2.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_i64_i16.rs b/lib/emscripten-tests/tests/emtests/test_i64_i16.rs deleted file mode 100644 index db7e848a7b1..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_i64_i16.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_i64_i16() { - assert_emscripten_output!( - "../../emtests/test_i64_i16.wasm", - "test_i64_i16", - vec![], - "../../emtests/test_i64_i16.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_i64_llabs.rs b/lib/emscripten-tests/tests/emtests/test_i64_llabs.rs deleted file mode 100644 index 7496a74d0e2..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_i64_llabs.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_i64_llabs() { - assert_emscripten_output!( - "../../emtests/test_i64_llabs.wasm", - "test_i64_llabs", - vec![], - "../../emtests/test_i64_llabs.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_i64_precise.rs b/lib/emscripten-tests/tests/emtests/test_i64_precise.rs deleted file mode 100644 index 16ea270569c..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_i64_precise.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_i64_precise() { - assert_emscripten_output!( - "../../emtests/test_i64_precise.wasm", - "test_i64_precise", - vec![], - "../../emtests/test_i64_precise.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_i64_precise_needed.rs b/lib/emscripten-tests/tests/emtests/test_i64_precise_needed.rs deleted file mode 100644 index 0afc595125d..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_i64_precise_needed.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_i64_precise_needed() { - assert_emscripten_output!( - "../../emtests/test_i64_precise_needed.wasm", - "test_i64_precise_needed", - vec![], - "../../emtests/test_i64_precise_needed.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_i64_precise_unneeded.rs b/lib/emscripten-tests/tests/emtests/test_i64_precise_unneeded.rs deleted file mode 100644 index 324ab98ea54..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_i64_precise_unneeded.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_i64_precise_unneeded() { - assert_emscripten_output!( - "../../emtests/test_i64_precise_unneeded.wasm", - "test_i64_precise_unneeded", - vec![], - "../../emtests/test_i64_precise_unneeded.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_i64_qdouble.rs b/lib/emscripten-tests/tests/emtests/test_i64_qdouble.rs deleted file mode 100644 index de58f5bddb8..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_i64_qdouble.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_i64_qdouble() { - assert_emscripten_output!( - "../../emtests/test_i64_qdouble.wasm", - "test_i64_qdouble", - vec![], - "../../emtests/test_i64_qdouble.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_i64_umul.rs b/lib/emscripten-tests/tests/emtests/test_i64_umul.rs deleted file mode 100644 index 4ddc08c5b86..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_i64_umul.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_i64_umul() { - assert_emscripten_output!( - "../../emtests/test_i64_umul.wasm", - "test_i64_umul", - vec![], - "../../emtests/test_i64_umul.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_i64_zextneg.rs b/lib/emscripten-tests/tests/emtests/test_i64_zextneg.rs deleted file mode 100644 index 93adaad2c32..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_i64_zextneg.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_i64_zextneg() { - assert_emscripten_output!( - "../../emtests/test_i64_zextneg.wasm", - "test_i64_zextneg", - vec![], - "../../emtests/test_i64_zextneg.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_if.rs b/lib/emscripten-tests/tests/emtests/test_if.rs deleted file mode 100644 index ea111fa564a..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_if.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_if() { - assert_emscripten_output!( - "../../emtests/test_if.wasm", - "test_if", - vec![], - "../../emtests/test_if.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_if_else.rs b/lib/emscripten-tests/tests/emtests/test_if_else.rs deleted file mode 100644 index df50aa17190..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_if_else.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_if_else() { - assert_emscripten_output!( - "../../emtests/test_if_else.wasm", - "test_if_else", - vec![], - "../../emtests/test_if_else.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_indirectbr.rs b/lib/emscripten-tests/tests/emtests/test_indirectbr.rs deleted file mode 100644 index 9997ea5538e..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_indirectbr.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_indirectbr() { - assert_emscripten_output!( - "../../emtests/test_indirectbr.wasm", - "test_indirectbr", - vec![], - "../../emtests/test_indirectbr.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_isnan.rs b/lib/emscripten-tests/tests/emtests/test_isnan.rs deleted file mode 100644 index d1b560b137b..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_isnan.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_isnan() { - assert_emscripten_output!( - "../../emtests/test_isnan.wasm", - "test_isnan", - vec![], - "../../emtests/test_isnan.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_libcextra.rs b/lib/emscripten-tests/tests/emtests/test_libcextra.rs deleted file mode 100644 index 4dcff5c0059..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_libcextra.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_libcextra() { - assert_emscripten_output!( - "../../emtests/test_libcextra.wasm", - "test_libcextra", - vec![], - "../../emtests/test_libcextra.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_libgen.rs b/lib/emscripten-tests/tests/emtests/test_libgen.rs deleted file mode 100644 index f9db3686a82..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_libgen.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_libgen() { - assert_emscripten_output!( - "../../emtests/test_libgen.wasm", - "test_libgen", - vec![], - "../../emtests/test_libgen.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_literal_negative_zero.rs b/lib/emscripten-tests/tests/emtests/test_literal_negative_zero.rs deleted file mode 100644 index 71d50c9c28f..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_literal_negative_zero.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_literal_negative_zero() { - assert_emscripten_output!( - "../../emtests/test_literal_negative_zero.wasm", - "test_literal_negative_zero", - vec![], - "../../emtests/test_literal_negative_zero.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_llrint.rs b/lib/emscripten-tests/tests/emtests/test_llrint.rs deleted file mode 100644 index 2d1da70df6c..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_llrint.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_llrint() { - assert_emscripten_output!( - "../../emtests/test_llrint.wasm", - "test_llrint", - vec![], - "../../emtests/test_llrint.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_llvm_fabs.rs b/lib/emscripten-tests/tests/emtests/test_llvm_fabs.rs deleted file mode 100644 index a356f70551c..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_llvm_fabs.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_llvm_fabs() { - assert_emscripten_output!( - "../../emtests/test_llvm_fabs.wasm", - "test_llvm_fabs", - vec![], - "../../emtests/test_llvm_fabs.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_llvmswitch.rs b/lib/emscripten-tests/tests/emtests/test_llvmswitch.rs deleted file mode 100644 index edeb31701a7..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_llvmswitch.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_llvmswitch() { - assert_emscripten_output!( - "../../emtests/test_llvmswitch.wasm", - "test_llvmswitch", - vec![], - "../../emtests/test_llvmswitch.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_longjmp.rs b/lib/emscripten-tests/tests/emtests/test_longjmp.rs deleted file mode 100644 index 90aaba8ffae..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_longjmp.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_longjmp() { - assert_emscripten_output!( - "../../emtests/test_longjmp.wasm", - "test_longjmp", - vec![], - "../../emtests/test_longjmp.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_longjmp2.rs b/lib/emscripten-tests/tests/emtests/test_longjmp2.rs deleted file mode 100644 index 3ad2c66c66a..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_longjmp2.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_longjmp2() { - assert_emscripten_output!( - "../../emtests/test_longjmp2.wasm", - "test_longjmp2", - vec![], - "../../emtests/test_longjmp2.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_longjmp3.rs b/lib/emscripten-tests/tests/emtests/test_longjmp3.rs deleted file mode 100644 index 65923c8edc7..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_longjmp3.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_longjmp3() { - assert_emscripten_output!( - "../../emtests/test_longjmp3.wasm", - "test_longjmp3", - vec![], - "../../emtests/test_longjmp3.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_longjmp4.rs b/lib/emscripten-tests/tests/emtests/test_longjmp4.rs deleted file mode 100644 index 3eabe409996..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_longjmp4.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_longjmp4() { - assert_emscripten_output!( - "../../emtests/test_longjmp4.wasm", - "test_longjmp4", - vec![], - "../../emtests/test_longjmp4.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_longjmp_funcptr.rs b/lib/emscripten-tests/tests/emtests/test_longjmp_funcptr.rs deleted file mode 100644 index 85a69d8ed28..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_longjmp_funcptr.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_longjmp_funcptr() { - assert_emscripten_output!( - "../../emtests/test_longjmp_funcptr.wasm", - "test_longjmp_funcptr", - vec![], - "../../emtests/test_longjmp_funcptr.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_longjmp_repeat.rs b/lib/emscripten-tests/tests/emtests/test_longjmp_repeat.rs deleted file mode 100644 index 5d2357db731..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_longjmp_repeat.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_longjmp_repeat() { - assert_emscripten_output!( - "../../emtests/test_longjmp_repeat.wasm", - "test_longjmp_repeat", - vec![], - "../../emtests/test_longjmp_repeat.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_longjmp_stacked.rs b/lib/emscripten-tests/tests/emtests/test_longjmp_stacked.rs deleted file mode 100644 index e5a69fb17aa..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_longjmp_stacked.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_longjmp_stacked() { - assert_emscripten_output!( - "../../emtests/test_longjmp_stacked.wasm", - "test_longjmp_stacked", - vec![], - "../../emtests/test_longjmp_stacked.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_longjmp_throw.rs b/lib/emscripten-tests/tests/emtests/test_longjmp_throw.rs deleted file mode 100644 index 877c620eff5..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_longjmp_throw.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_longjmp_throw() { - assert_emscripten_output!( - "../../emtests/test_longjmp_throw.wasm", - "test_longjmp_throw", - vec![], - "../../emtests/test_longjmp_throw.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_longjmp_unwind.rs b/lib/emscripten-tests/tests/emtests/test_longjmp_unwind.rs deleted file mode 100644 index f6e92139690..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_longjmp_unwind.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_longjmp_unwind() { - assert_emscripten_output!( - "../../emtests/test_longjmp_unwind.wasm", - "test_longjmp_unwind", - vec![], - "../../emtests/test_longjmp_unwind.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_loop.rs b/lib/emscripten-tests/tests/emtests/test_loop.rs deleted file mode 100644 index 3cfa9ad91c4..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_loop.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_loop() { - assert_emscripten_output!( - "../../emtests/test_loop.wasm", - "test_loop", - vec![], - "../../emtests/test_loop.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_memcpy2.rs b/lib/emscripten-tests/tests/emtests/test_memcpy2.rs deleted file mode 100644 index 806402ea701..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_memcpy2.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_memcpy2() { - assert_emscripten_output!( - "../../emtests/test_memcpy2.wasm", - "test_memcpy2", - vec![], - "../../emtests/test_memcpy2.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_memcpy3.rs b/lib/emscripten-tests/tests/emtests/test_memcpy3.rs deleted file mode 100644 index 85bb10a35db..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_memcpy3.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_memcpy3() { - assert_emscripten_output!( - "../../emtests/test_memcpy3.wasm", - "test_memcpy3", - vec![], - "../../emtests/test_memcpy3.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_memmove.rs b/lib/emscripten-tests/tests/emtests/test_memmove.rs deleted file mode 100644 index 65102f65b89..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_memmove.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_memmove() { - assert_emscripten_output!( - "../../emtests/test_memmove.wasm", - "test_memmove", - vec![], - "../../emtests/test_memmove.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_memmove2.rs b/lib/emscripten-tests/tests/emtests/test_memmove2.rs deleted file mode 100644 index abacdd55cec..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_memmove2.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_memmove2() { - assert_emscripten_output!( - "../../emtests/test_memmove2.wasm", - "test_memmove2", - vec![], - "../../emtests/test_memmove2.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_memmove3.rs b/lib/emscripten-tests/tests/emtests/test_memmove3.rs deleted file mode 100644 index 7635102f886..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_memmove3.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_memmove3() { - assert_emscripten_output!( - "../../emtests/test_memmove3.wasm", - "test_memmove3", - vec![], - "../../emtests/test_memmove3.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_memset.rs b/lib/emscripten-tests/tests/emtests/test_memset.rs deleted file mode 100644 index 00d4f9f7679..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_memset.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_memset() { - assert_emscripten_output!( - "../../emtests/test_memset.wasm", - "test_memset", - vec![], - "../../emtests/test_memset.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_negative_zero.rs b/lib/emscripten-tests/tests/emtests/test_negative_zero.rs deleted file mode 100644 index 047bcfcba8e..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_negative_zero.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_negative_zero() { - assert_emscripten_output!( - "../../emtests/test_negative_zero.wasm", - "test_negative_zero", - vec![], - "../../emtests/test_negative_zero.out" - ); -} diff --git a/lib/emscripten-tests/tests/emtests/test_nested_struct_varargs.rs b/lib/emscripten-tests/tests/emtests/test_nested_struct_varargs.rs deleted file mode 100644 index 18978458849..00000000000 --- a/lib/emscripten-tests/tests/emtests/test_nested_struct_varargs.rs +++ /dev/null @@ -1,9 +0,0 @@ -#[test] -fn test_test_nested_struct_varargs() { - assert_emscripten_output!( - "../../emtests/test_nested_struct_varargs.wasm", - "test_nested_struct_varargs", - vec![], - "../../emtests/test_nested_struct_varargs.out" - ); -} diff --git a/lib/emscripten-tests/src/lib.rs b/tests/emscripten.rs similarity index 80% rename from lib/emscripten-tests/src/lib.rs rename to tests/emscripten.rs index 59bcf90ebf7..4edf595a26e 100644 --- a/lib/emscripten-tests/src/lib.rs +++ b/tests/emscripten.rs @@ -7,7 +7,7 @@ mod tests { #[test] fn should_detect_emscripten_files() { - const WAST_BYTES: &[u8] = include_bytes!("tests/is_emscripten_true.wast"); + const WAST_BYTES: &[u8] = include_bytes!("emscripten_resources/is_emscripten_true.wast"); let wasm_binary = wat2wasm(WAST_BYTES.to_vec()).expect("Can't convert to wasm"); let module = compile(&wasm_binary[..]).expect("WASM can't be compiled"); let module = Arc::new(module); @@ -16,7 +16,7 @@ mod tests { #[test] fn should_detect_non_emscripten_files() { - const WAST_BYTES: &[u8] = include_bytes!("tests/is_emscripten_false.wast"); + const WAST_BYTES: &[u8] = include_bytes!("emscripten_resources/is_emscripten_false.wast"); let wasm_binary = wat2wasm(WAST_BYTES.to_vec()).expect("Can't convert to wasm"); let module = compile(&wasm_binary[..]).expect("WASM can't be compiled"); let module = Arc::new(module); diff --git a/lib/emscripten-tests/emtests/FS_exports.cpp b/tests/emscripten_resources/emtests/FS_exports.cpp similarity index 100% rename from lib/emscripten-tests/emtests/FS_exports.cpp rename to tests/emscripten_resources/emtests/FS_exports.cpp diff --git a/lib/emscripten-tests/emtests/FS_exports.txt b/tests/emscripten_resources/emtests/FS_exports.txt similarity index 100% rename from lib/emscripten-tests/emtests/FS_exports.txt rename to tests/emscripten_resources/emtests/FS_exports.txt diff --git a/lib/emscripten-tests/emtests/FS_exports.wasm b/tests/emscripten_resources/emtests/FS_exports.wasm similarity index 100% rename from lib/emscripten-tests/emtests/FS_exports.wasm rename to tests/emscripten_resources/emtests/FS_exports.wasm diff --git a/lib/emscripten-tests/emtests/FS_exports_2.txt b/tests/emscripten_resources/emtests/FS_exports_2.txt similarity index 100% rename from lib/emscripten-tests/emtests/FS_exports_2.txt rename to tests/emscripten_resources/emtests/FS_exports_2.txt diff --git a/lib/emscripten-tests/emtests/FS_exports_assert.txt b/tests/emscripten_resources/emtests/FS_exports_assert.txt similarity index 100% rename from lib/emscripten-tests/emtests/FS_exports_assert.txt rename to tests/emscripten_resources/emtests/FS_exports_assert.txt diff --git a/lib/emscripten-tests/emtests/FS_exports_assert_2.txt b/tests/emscripten_resources/emtests/FS_exports_assert_2.txt similarity index 100% rename from lib/emscripten-tests/emtests/FS_exports_assert_2.txt rename to tests/emscripten_resources/emtests/FS_exports_assert_2.txt diff --git a/lib/emscripten-tests/emtests/README.md b/tests/emscripten_resources/emtests/README.md similarity index 100% rename from lib/emscripten-tests/emtests/README.md rename to tests/emscripten_resources/emtests/README.md diff --git a/lib/emscripten-tests/emtests/clock_gettime.c b/tests/emscripten_resources/emtests/clock_gettime.c similarity index 100% rename from lib/emscripten-tests/emtests/clock_gettime.c rename to tests/emscripten_resources/emtests/clock_gettime.c diff --git a/lib/emscripten-tests/emtests/clock_gettime.out b/tests/emscripten_resources/emtests/clock_gettime.out similarity index 100% rename from lib/emscripten-tests/emtests/clock_gettime.out rename to tests/emscripten_resources/emtests/clock_gettime.out diff --git a/lib/emscripten-tests/emtests/clock_gettime.wasm b/tests/emscripten_resources/emtests/clock_gettime.wasm similarity index 100% rename from lib/emscripten-tests/emtests/clock_gettime.wasm rename to tests/emscripten_resources/emtests/clock_gettime.wasm diff --git a/lib/emscripten-tests/emtests/closebitcasts.c b/tests/emscripten_resources/emtests/closebitcasts.c similarity index 100% rename from lib/emscripten-tests/emtests/closebitcasts.c rename to tests/emscripten_resources/emtests/closebitcasts.c diff --git a/lib/emscripten-tests/emtests/closebitcasts.txt b/tests/emscripten_resources/emtests/closebitcasts.txt similarity index 100% rename from lib/emscripten-tests/emtests/closebitcasts.txt rename to tests/emscripten_resources/emtests/closebitcasts.txt diff --git a/lib/emscripten-tests/emtests/closebitcasts.wasm b/tests/emscripten_resources/emtests/closebitcasts.wasm similarity index 100% rename from lib/emscripten-tests/emtests/closebitcasts.wasm rename to tests/emscripten_resources/emtests/closebitcasts.wasm diff --git a/lib/emscripten-tests/emtests/dyncall.c b/tests/emscripten_resources/emtests/dyncall.c similarity index 100% rename from lib/emscripten-tests/emtests/dyncall.c rename to tests/emscripten_resources/emtests/dyncall.c diff --git a/lib/emscripten-tests/emtests/dyncall.txt b/tests/emscripten_resources/emtests/dyncall.txt similarity index 100% rename from lib/emscripten-tests/emtests/dyncall.txt rename to tests/emscripten_resources/emtests/dyncall.txt diff --git a/lib/emscripten-tests/emtests/dyncall.wasm b/tests/emscripten_resources/emtests/dyncall.wasm similarity index 100% rename from lib/emscripten-tests/emtests/dyncall.wasm rename to tests/emscripten_resources/emtests/dyncall.wasm diff --git a/lib/emscripten-tests/emtests/dyncall_specific.c b/tests/emscripten_resources/emtests/dyncall_specific.c similarity index 100% rename from lib/emscripten-tests/emtests/dyncall_specific.c rename to tests/emscripten_resources/emtests/dyncall_specific.c diff --git a/lib/emscripten-tests/emtests/dyncall_specific.txt b/tests/emscripten_resources/emtests/dyncall_specific.txt similarity index 100% rename from lib/emscripten-tests/emtests/dyncall_specific.txt rename to tests/emscripten_resources/emtests/dyncall_specific.txt diff --git a/lib/emscripten-tests/emtests/dyncall_specific.wasm b/tests/emscripten_resources/emtests/dyncall_specific.wasm similarity index 100% rename from lib/emscripten-tests/emtests/dyncall_specific.wasm rename to tests/emscripten_resources/emtests/dyncall_specific.wasm diff --git a/lib/emscripten-tests/emtests/emscripten_get_compiler_setting.c b/tests/emscripten_resources/emtests/emscripten_get_compiler_setting.c similarity index 100% rename from lib/emscripten-tests/emtests/emscripten_get_compiler_setting.c rename to tests/emscripten_resources/emtests/emscripten_get_compiler_setting.c diff --git a/lib/emscripten-tests/emtests/emscripten_get_compiler_setting.out b/tests/emscripten_resources/emtests/emscripten_get_compiler_setting.out similarity index 100% rename from lib/emscripten-tests/emtests/emscripten_get_compiler_setting.out rename to tests/emscripten_resources/emtests/emscripten_get_compiler_setting.out diff --git a/lib/emscripten-tests/emtests/emscripten_get_compiler_setting.wasm b/tests/emscripten_resources/emtests/emscripten_get_compiler_setting.wasm similarity index 100% rename from lib/emscripten-tests/emtests/emscripten_get_compiler_setting.wasm rename to tests/emscripten_resources/emtests/emscripten_get_compiler_setting.wasm diff --git a/lib/emscripten-tests/emtests/env.c b/tests/emscripten_resources/emtests/env.c similarity index 100% rename from lib/emscripten-tests/emtests/env.c rename to tests/emscripten_resources/emtests/env.c diff --git a/lib/emscripten-tests/emtests/env.out b/tests/emscripten_resources/emtests/env.out similarity index 100% rename from lib/emscripten-tests/emtests/env.out rename to tests/emscripten_resources/emtests/env.out diff --git a/lib/emscripten-tests/emtests/env.wasm b/tests/emscripten_resources/emtests/env.wasm similarity index 100% rename from lib/emscripten-tests/emtests/env.wasm rename to tests/emscripten_resources/emtests/env.wasm diff --git a/lib/emscripten-tests/emtests/fnmatch.c b/tests/emscripten_resources/emtests/fnmatch.c similarity index 100% rename from lib/emscripten-tests/emtests/fnmatch.c rename to tests/emscripten_resources/emtests/fnmatch.c diff --git a/lib/emscripten-tests/emtests/fnmatch.out b/tests/emscripten_resources/emtests/fnmatch.out similarity index 100% rename from lib/emscripten-tests/emtests/fnmatch.out rename to tests/emscripten_resources/emtests/fnmatch.out diff --git a/lib/emscripten-tests/emtests/getValue_setValue.cpp b/tests/emscripten_resources/emtests/getValue_setValue.cpp similarity index 100% rename from lib/emscripten-tests/emtests/getValue_setValue.cpp rename to tests/emscripten_resources/emtests/getValue_setValue.cpp diff --git a/lib/emscripten-tests/emtests/getValue_setValue.txt b/tests/emscripten_resources/emtests/getValue_setValue.txt similarity index 100% rename from lib/emscripten-tests/emtests/getValue_setValue.txt rename to tests/emscripten_resources/emtests/getValue_setValue.txt diff --git a/lib/emscripten-tests/emtests/getValue_setValue.wasm b/tests/emscripten_resources/emtests/getValue_setValue.wasm similarity index 100% rename from lib/emscripten-tests/emtests/getValue_setValue.wasm rename to tests/emscripten_resources/emtests/getValue_setValue.wasm diff --git a/lib/emscripten-tests/emtests/getValue_setValue_assert.txt b/tests/emscripten_resources/emtests/getValue_setValue_assert.txt similarity index 100% rename from lib/emscripten-tests/emtests/getValue_setValue_assert.txt rename to tests/emscripten_resources/emtests/getValue_setValue_assert.txt diff --git a/lib/emscripten-tests/emtests/hello.cpp b/tests/emscripten_resources/emtests/hello.cpp similarity index 100% rename from lib/emscripten-tests/emtests/hello.cpp rename to tests/emscripten_resources/emtests/hello.cpp diff --git a/lib/emscripten-tests/emtests/hello.out b/tests/emscripten_resources/emtests/hello.out similarity index 100% rename from lib/emscripten-tests/emtests/hello.out rename to tests/emscripten_resources/emtests/hello.out diff --git a/lib/emscripten-tests/emtests/hello.wasm b/tests/emscripten_resources/emtests/hello.wasm similarity index 100% rename from lib/emscripten-tests/emtests/hello.wasm rename to tests/emscripten_resources/emtests/hello.wasm diff --git a/lib/emscripten-tests/emtests/ignores.txt b/tests/emscripten_resources/emtests/ignores.txt similarity index 100% rename from lib/emscripten-tests/emtests/ignores.txt rename to tests/emscripten_resources/emtests/ignores.txt diff --git a/lib/emscripten-tests/emtests/legacy_exported_runtime_numbers.cpp b/tests/emscripten_resources/emtests/legacy_exported_runtime_numbers.cpp similarity index 100% rename from lib/emscripten-tests/emtests/legacy_exported_runtime_numbers.cpp rename to tests/emscripten_resources/emtests/legacy_exported_runtime_numbers.cpp diff --git a/lib/emscripten-tests/emtests/legacy_exported_runtime_numbers.txt b/tests/emscripten_resources/emtests/legacy_exported_runtime_numbers.txt similarity index 100% rename from lib/emscripten-tests/emtests/legacy_exported_runtime_numbers.txt rename to tests/emscripten_resources/emtests/legacy_exported_runtime_numbers.txt diff --git a/lib/emscripten-tests/emtests/legacy_exported_runtime_numbers.wasm b/tests/emscripten_resources/emtests/legacy_exported_runtime_numbers.wasm similarity index 100% rename from lib/emscripten-tests/emtests/legacy_exported_runtime_numbers.wasm rename to tests/emscripten_resources/emtests/legacy_exported_runtime_numbers.wasm diff --git a/lib/emscripten-tests/emtests/legacy_exported_runtime_numbers_assert.txt b/tests/emscripten_resources/emtests/legacy_exported_runtime_numbers_assert.txt similarity index 100% rename from lib/emscripten-tests/emtests/legacy_exported_runtime_numbers_assert.txt rename to tests/emscripten_resources/emtests/legacy_exported_runtime_numbers_assert.txt diff --git a/lib/emscripten-tests/emtests/localtime.c b/tests/emscripten_resources/emtests/localtime.c similarity index 100% rename from lib/emscripten-tests/emtests/localtime.c rename to tests/emscripten_resources/emtests/localtime.c diff --git a/lib/emscripten-tests/emtests/localtime.out b/tests/emscripten_resources/emtests/localtime.out similarity index 100% rename from lib/emscripten-tests/emtests/localtime.out rename to tests/emscripten_resources/emtests/localtime.out diff --git a/lib/emscripten-tests/emtests/localtime.wasm b/tests/emscripten_resources/emtests/localtime.wasm similarity index 100% rename from lib/emscripten-tests/emtests/localtime.wasm rename to tests/emscripten_resources/emtests/localtime.wasm diff --git a/lib/emscripten-tests/emtests/modularize_closure_pre.c b/tests/emscripten_resources/emtests/modularize_closure_pre.c similarity index 100% rename from lib/emscripten-tests/emtests/modularize_closure_pre.c rename to tests/emscripten_resources/emtests/modularize_closure_pre.c diff --git a/lib/emscripten-tests/emtests/modularize_closure_pre.out b/tests/emscripten_resources/emtests/modularize_closure_pre.out similarity index 100% rename from lib/emscripten-tests/emtests/modularize_closure_pre.out rename to tests/emscripten_resources/emtests/modularize_closure_pre.out diff --git a/lib/emscripten-tests/emtests/modularize_closure_pre.wasm b/tests/emscripten_resources/emtests/modularize_closure_pre.wasm similarity index 100% rename from lib/emscripten-tests/emtests/modularize_closure_pre.wasm rename to tests/emscripten_resources/emtests/modularize_closure_pre.wasm diff --git a/lib/emscripten-tests/emtests/printf.c b/tests/emscripten_resources/emtests/printf.c similarity index 100% rename from lib/emscripten-tests/emtests/printf.c rename to tests/emscripten_resources/emtests/printf.c diff --git a/lib/emscripten-tests/emtests/printf.out b/tests/emscripten_resources/emtests/printf.out similarity index 100% rename from lib/emscripten-tests/emtests/printf.out rename to tests/emscripten_resources/emtests/printf.out diff --git a/lib/emscripten-tests/emtests/printf.wasm b/tests/emscripten_resources/emtests/printf.wasm similarity index 100% rename from lib/emscripten-tests/emtests/printf.wasm rename to tests/emscripten_resources/emtests/printf.wasm diff --git a/lib/emscripten-tests/emtests/puts.c b/tests/emscripten_resources/emtests/puts.c similarity index 100% rename from lib/emscripten-tests/emtests/puts.c rename to tests/emscripten_resources/emtests/puts.c diff --git a/lib/emscripten-tests/emtests/puts.out b/tests/emscripten_resources/emtests/puts.out similarity index 100% rename from lib/emscripten-tests/emtests/puts.out rename to tests/emscripten_resources/emtests/puts.out diff --git a/lib/emscripten-tests/emtests/puts.wasm b/tests/emscripten_resources/emtests/puts.wasm similarity index 100% rename from lib/emscripten-tests/emtests/puts.wasm rename to tests/emscripten_resources/emtests/puts.wasm diff --git a/lib/emscripten-tests/emtests/stackAlloc.cpp b/tests/emscripten_resources/emtests/stackAlloc.cpp similarity index 100% rename from lib/emscripten-tests/emtests/stackAlloc.cpp rename to tests/emscripten_resources/emtests/stackAlloc.cpp diff --git a/lib/emscripten-tests/emtests/stackAlloc.txt b/tests/emscripten_resources/emtests/stackAlloc.txt similarity index 100% rename from lib/emscripten-tests/emtests/stackAlloc.txt rename to tests/emscripten_resources/emtests/stackAlloc.txt diff --git a/lib/emscripten-tests/emtests/stackAlloc.wasm b/tests/emscripten_resources/emtests/stackAlloc.wasm similarity index 100% rename from lib/emscripten-tests/emtests/stackAlloc.wasm rename to tests/emscripten_resources/emtests/stackAlloc.wasm diff --git a/lib/emscripten-tests/emtests/stack_overflow.cpp b/tests/emscripten_resources/emtests/stack_overflow.cpp similarity index 100% rename from lib/emscripten-tests/emtests/stack_overflow.cpp rename to tests/emscripten_resources/emtests/stack_overflow.cpp diff --git a/lib/emscripten-tests/emtests/stack_overflow.wasm b/tests/emscripten_resources/emtests/stack_overflow.wasm similarity index 100% rename from lib/emscripten-tests/emtests/stack_overflow.wasm rename to tests/emscripten_resources/emtests/stack_overflow.wasm diff --git a/lib/emscripten-tests/emtests/test_addr_of_stacked.c b/tests/emscripten_resources/emtests/test_addr_of_stacked.c similarity index 100% rename from lib/emscripten-tests/emtests/test_addr_of_stacked.c rename to tests/emscripten_resources/emtests/test_addr_of_stacked.c diff --git a/lib/emscripten-tests/emtests/test_addr_of_stacked.out b/tests/emscripten_resources/emtests/test_addr_of_stacked.out similarity index 100% rename from lib/emscripten-tests/emtests/test_addr_of_stacked.out rename to tests/emscripten_resources/emtests/test_addr_of_stacked.out diff --git a/lib/emscripten-tests/emtests/test_addr_of_stacked.wasm b/tests/emscripten_resources/emtests/test_addr_of_stacked.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_addr_of_stacked.wasm rename to tests/emscripten_resources/emtests/test_addr_of_stacked.wasm diff --git a/lib/emscripten-tests/emtests/test_alloca.c b/tests/emscripten_resources/emtests/test_alloca.c similarity index 100% rename from lib/emscripten-tests/emtests/test_alloca.c rename to tests/emscripten_resources/emtests/test_alloca.c diff --git a/lib/emscripten-tests/emtests/test_alloca.out b/tests/emscripten_resources/emtests/test_alloca.out similarity index 100% rename from lib/emscripten-tests/emtests/test_alloca.out rename to tests/emscripten_resources/emtests/test_alloca.out diff --git a/lib/emscripten-tests/emtests/test_alloca.wasm b/tests/emscripten_resources/emtests/test_alloca.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_alloca.wasm rename to tests/emscripten_resources/emtests/test_alloca.wasm diff --git a/lib/emscripten-tests/emtests/test_alloca_stack.c b/tests/emscripten_resources/emtests/test_alloca_stack.c similarity index 100% rename from lib/emscripten-tests/emtests/test_alloca_stack.c rename to tests/emscripten_resources/emtests/test_alloca_stack.c diff --git a/lib/emscripten-tests/emtests/test_alloca_stack.out b/tests/emscripten_resources/emtests/test_alloca_stack.out similarity index 100% rename from lib/emscripten-tests/emtests/test_alloca_stack.out rename to tests/emscripten_resources/emtests/test_alloca_stack.out diff --git a/lib/emscripten-tests/emtests/test_alloca_stack.wasm b/tests/emscripten_resources/emtests/test_alloca_stack.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_alloca_stack.wasm rename to tests/emscripten_resources/emtests/test_alloca_stack.wasm diff --git a/lib/emscripten-tests/emtests/test_array2.c b/tests/emscripten_resources/emtests/test_array2.c similarity index 100% rename from lib/emscripten-tests/emtests/test_array2.c rename to tests/emscripten_resources/emtests/test_array2.c diff --git a/lib/emscripten-tests/emtests/test_array2.out b/tests/emscripten_resources/emtests/test_array2.out similarity index 100% rename from lib/emscripten-tests/emtests/test_array2.out rename to tests/emscripten_resources/emtests/test_array2.out diff --git a/lib/emscripten-tests/emtests/test_array2.wasm b/tests/emscripten_resources/emtests/test_array2.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_array2.wasm rename to tests/emscripten_resources/emtests/test_array2.wasm diff --git a/lib/emscripten-tests/emtests/test_array2b.c b/tests/emscripten_resources/emtests/test_array2b.c similarity index 100% rename from lib/emscripten-tests/emtests/test_array2b.c rename to tests/emscripten_resources/emtests/test_array2b.c diff --git a/lib/emscripten-tests/emtests/test_array2b.out b/tests/emscripten_resources/emtests/test_array2b.out similarity index 100% rename from lib/emscripten-tests/emtests/test_array2b.out rename to tests/emscripten_resources/emtests/test_array2b.out diff --git a/lib/emscripten-tests/emtests/test_array2b.wasm b/tests/emscripten_resources/emtests/test_array2b.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_array2b.wasm rename to tests/emscripten_resources/emtests/test_array2b.wasm diff --git a/lib/emscripten-tests/emtests/test_assert.c b/tests/emscripten_resources/emtests/test_assert.c similarity index 100% rename from lib/emscripten-tests/emtests/test_assert.c rename to tests/emscripten_resources/emtests/test_assert.c diff --git a/lib/emscripten-tests/emtests/test_assert.out b/tests/emscripten_resources/emtests/test_assert.out similarity index 100% rename from lib/emscripten-tests/emtests/test_assert.out rename to tests/emscripten_resources/emtests/test_assert.out diff --git a/lib/emscripten-tests/emtests/test_atexit.c b/tests/emscripten_resources/emtests/test_atexit.c similarity index 100% rename from lib/emscripten-tests/emtests/test_atexit.c rename to tests/emscripten_resources/emtests/test_atexit.c diff --git a/lib/emscripten-tests/emtests/test_atexit.out b/tests/emscripten_resources/emtests/test_atexit.out similarity index 100% rename from lib/emscripten-tests/emtests/test_atexit.out rename to tests/emscripten_resources/emtests/test_atexit.out diff --git a/lib/emscripten-tests/emtests/test_atoX.c b/tests/emscripten_resources/emtests/test_atoX.c similarity index 100% rename from lib/emscripten-tests/emtests/test_atoX.c rename to tests/emscripten_resources/emtests/test_atoX.c diff --git a/lib/emscripten-tests/emtests/test_atoX.out b/tests/emscripten_resources/emtests/test_atoX.out similarity index 100% rename from lib/emscripten-tests/emtests/test_atoX.out rename to tests/emscripten_resources/emtests/test_atoX.out diff --git a/lib/emscripten-tests/emtests/test_atoX.wasm b/tests/emscripten_resources/emtests/test_atoX.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_atoX.wasm rename to tests/emscripten_resources/emtests/test_atoX.wasm diff --git a/lib/emscripten-tests/emtests/test_atomic.c b/tests/emscripten_resources/emtests/test_atomic.c similarity index 100% rename from lib/emscripten-tests/emtests/test_atomic.c rename to tests/emscripten_resources/emtests/test_atomic.c diff --git a/lib/emscripten-tests/emtests/test_atomic.out b/tests/emscripten_resources/emtests/test_atomic.out similarity index 100% rename from lib/emscripten-tests/emtests/test_atomic.out rename to tests/emscripten_resources/emtests/test_atomic.out diff --git a/lib/emscripten-tests/emtests/test_atomic.wasm b/tests/emscripten_resources/emtests/test_atomic.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_atomic.wasm rename to tests/emscripten_resources/emtests/test_atomic.wasm diff --git a/lib/emscripten-tests/emtests/test_atomic_cxx.cpp b/tests/emscripten_resources/emtests/test_atomic_cxx.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_atomic_cxx.cpp rename to tests/emscripten_resources/emtests/test_atomic_cxx.cpp diff --git a/lib/emscripten-tests/emtests/test_atomic_cxx.txt b/tests/emscripten_resources/emtests/test_atomic_cxx.txt similarity index 100% rename from lib/emscripten-tests/emtests/test_atomic_cxx.txt rename to tests/emscripten_resources/emtests/test_atomic_cxx.txt diff --git a/lib/emscripten-tests/emtests/test_atomic_cxx.wasm b/tests/emscripten_resources/emtests/test_atomic_cxx.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_atomic_cxx.wasm rename to tests/emscripten_resources/emtests/test_atomic_cxx.wasm diff --git a/lib/emscripten-tests/emtests/test_bigarray.c b/tests/emscripten_resources/emtests/test_bigarray.c similarity index 100% rename from lib/emscripten-tests/emtests/test_bigarray.c rename to tests/emscripten_resources/emtests/test_bigarray.c diff --git a/lib/emscripten-tests/emtests/test_bigarray.out b/tests/emscripten_resources/emtests/test_bigarray.out similarity index 100% rename from lib/emscripten-tests/emtests/test_bigarray.out rename to tests/emscripten_resources/emtests/test_bigarray.out diff --git a/lib/emscripten-tests/emtests/test_bitfields.c b/tests/emscripten_resources/emtests/test_bitfields.c similarity index 100% rename from lib/emscripten-tests/emtests/test_bitfields.c rename to tests/emscripten_resources/emtests/test_bitfields.c diff --git a/lib/emscripten-tests/emtests/test_bitfields.out b/tests/emscripten_resources/emtests/test_bitfields.out similarity index 100% rename from lib/emscripten-tests/emtests/test_bitfields.out rename to tests/emscripten_resources/emtests/test_bitfields.out diff --git a/lib/emscripten-tests/emtests/test_bsearch.c b/tests/emscripten_resources/emtests/test_bsearch.c similarity index 100% rename from lib/emscripten-tests/emtests/test_bsearch.c rename to tests/emscripten_resources/emtests/test_bsearch.c diff --git a/lib/emscripten-tests/emtests/test_bsearch.out b/tests/emscripten_resources/emtests/test_bsearch.out similarity index 100% rename from lib/emscripten-tests/emtests/test_bsearch.out rename to tests/emscripten_resources/emtests/test_bsearch.out diff --git a/lib/emscripten-tests/emtests/test_bsearch.wasm b/tests/emscripten_resources/emtests/test_bsearch.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_bsearch.wasm rename to tests/emscripten_resources/emtests/test_bsearch.wasm diff --git a/lib/emscripten-tests/emtests/test_bswap64.c b/tests/emscripten_resources/emtests/test_bswap64.c similarity index 100% rename from lib/emscripten-tests/emtests/test_bswap64.c rename to tests/emscripten_resources/emtests/test_bswap64.c diff --git a/lib/emscripten-tests/emtests/test_bswap64.out b/tests/emscripten_resources/emtests/test_bswap64.out similarity index 100% rename from lib/emscripten-tests/emtests/test_bswap64.out rename to tests/emscripten_resources/emtests/test_bswap64.out diff --git a/lib/emscripten-tests/emtests/test_ccall.cpp b/tests/emscripten_resources/emtests/test_ccall.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_ccall.cpp rename to tests/emscripten_resources/emtests/test_ccall.cpp diff --git a/lib/emscripten-tests/emtests/test_ccall.out b/tests/emscripten_resources/emtests/test_ccall.out similarity index 100% rename from lib/emscripten-tests/emtests/test_ccall.out rename to tests/emscripten_resources/emtests/test_ccall.out diff --git a/lib/emscripten-tests/emtests/test_ccall.wasm b/tests/emscripten_resources/emtests/test_ccall.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_ccall.wasm rename to tests/emscripten_resources/emtests/test_ccall.wasm diff --git a/lib/emscripten-tests/emtests/test_class.c b/tests/emscripten_resources/emtests/test_class.c similarity index 100% rename from lib/emscripten-tests/emtests/test_class.c rename to tests/emscripten_resources/emtests/test_class.c diff --git a/lib/emscripten-tests/emtests/test_class.out b/tests/emscripten_resources/emtests/test_class.out similarity index 100% rename from lib/emscripten-tests/emtests/test_class.out rename to tests/emscripten_resources/emtests/test_class.out diff --git a/lib/emscripten-tests/emtests/test_complex.c b/tests/emscripten_resources/emtests/test_complex.c similarity index 100% rename from lib/emscripten-tests/emtests/test_complex.c rename to tests/emscripten_resources/emtests/test_complex.c diff --git a/lib/emscripten-tests/emtests/test_complex.out b/tests/emscripten_resources/emtests/test_complex.out similarity index 100% rename from lib/emscripten-tests/emtests/test_complex.out rename to tests/emscripten_resources/emtests/test_complex.out diff --git a/lib/emscripten-tests/emtests/test_complex.wasm b/tests/emscripten_resources/emtests/test_complex.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_complex.wasm rename to tests/emscripten_resources/emtests/test_complex.wasm diff --git a/lib/emscripten-tests/emtests/test_constglobalstructs.c b/tests/emscripten_resources/emtests/test_constglobalstructs.c similarity index 100% rename from lib/emscripten-tests/emtests/test_constglobalstructs.c rename to tests/emscripten_resources/emtests/test_constglobalstructs.c diff --git a/lib/emscripten-tests/emtests/test_constglobalstructs.out b/tests/emscripten_resources/emtests/test_constglobalstructs.out similarity index 100% rename from lib/emscripten-tests/emtests/test_constglobalstructs.out rename to tests/emscripten_resources/emtests/test_constglobalstructs.out diff --git a/lib/emscripten-tests/emtests/test_conststructs.c b/tests/emscripten_resources/emtests/test_conststructs.c similarity index 100% rename from lib/emscripten-tests/emtests/test_conststructs.c rename to tests/emscripten_resources/emtests/test_conststructs.c diff --git a/lib/emscripten-tests/emtests/test_conststructs.out b/tests/emscripten_resources/emtests/test_conststructs.out similarity index 100% rename from lib/emscripten-tests/emtests/test_conststructs.out rename to tests/emscripten_resources/emtests/test_conststructs.out diff --git a/lib/emscripten-tests/emtests/test_copyop.c b/tests/emscripten_resources/emtests/test_copyop.c similarity index 100% rename from lib/emscripten-tests/emtests/test_copyop.c rename to tests/emscripten_resources/emtests/test_copyop.c diff --git a/lib/emscripten-tests/emtests/test_copyop.out b/tests/emscripten_resources/emtests/test_copyop.out similarity index 100% rename from lib/emscripten-tests/emtests/test_copyop.out rename to tests/emscripten_resources/emtests/test_copyop.out diff --git a/lib/emscripten-tests/emtests/test_cxx03_do_run.c b/tests/emscripten_resources/emtests/test_cxx03_do_run.c similarity index 100% rename from lib/emscripten-tests/emtests/test_cxx03_do_run.c rename to tests/emscripten_resources/emtests/test_cxx03_do_run.c diff --git a/lib/emscripten-tests/emtests/test_cxx03_do_run.out b/tests/emscripten_resources/emtests/test_cxx03_do_run.out similarity index 100% rename from lib/emscripten-tests/emtests/test_cxx03_do_run.out rename to tests/emscripten_resources/emtests/test_cxx03_do_run.out diff --git a/lib/emscripten-tests/emtests/test_demangle_stacks.cpp b/tests/emscripten_resources/emtests/test_demangle_stacks.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_demangle_stacks.cpp rename to tests/emscripten_resources/emtests/test_demangle_stacks.cpp diff --git a/lib/emscripten-tests/emtests/test_demangle_stacks.out b/tests/emscripten_resources/emtests/test_demangle_stacks.out similarity index 100% rename from lib/emscripten-tests/emtests/test_demangle_stacks.out rename to tests/emscripten_resources/emtests/test_demangle_stacks.out diff --git a/lib/emscripten-tests/emtests/test_demangle_stacks.wasm b/tests/emscripten_resources/emtests/test_demangle_stacks.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_demangle_stacks.wasm rename to tests/emscripten_resources/emtests/test_demangle_stacks.wasm diff --git a/lib/emscripten-tests/emtests/test_demangle_stacks_noassert.cpp b/tests/emscripten_resources/emtests/test_demangle_stacks_noassert.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_demangle_stacks_noassert.cpp rename to tests/emscripten_resources/emtests/test_demangle_stacks_noassert.cpp diff --git a/lib/emscripten-tests/emtests/test_demangle_stacks_noassert.out b/tests/emscripten_resources/emtests/test_demangle_stacks_noassert.out similarity index 100% rename from lib/emscripten-tests/emtests/test_demangle_stacks_noassert.out rename to tests/emscripten_resources/emtests/test_demangle_stacks_noassert.out diff --git a/lib/emscripten-tests/emtests/test_demangle_stacks_noassert.wasm b/tests/emscripten_resources/emtests/test_demangle_stacks_noassert.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_demangle_stacks_noassert.wasm rename to tests/emscripten_resources/emtests/test_demangle_stacks_noassert.wasm diff --git a/lib/emscripten-tests/emtests/test_direct_string_constant_usage.c b/tests/emscripten_resources/emtests/test_direct_string_constant_usage.c similarity index 100% rename from lib/emscripten-tests/emtests/test_direct_string_constant_usage.c rename to tests/emscripten_resources/emtests/test_direct_string_constant_usage.c diff --git a/lib/emscripten-tests/emtests/test_direct_string_constant_usage.out b/tests/emscripten_resources/emtests/test_direct_string_constant_usage.out similarity index 100% rename from lib/emscripten-tests/emtests/test_direct_string_constant_usage.out rename to tests/emscripten_resources/emtests/test_direct_string_constant_usage.out diff --git a/lib/emscripten-tests/emtests/test_dlfcn_self.c b/tests/emscripten_resources/emtests/test_dlfcn_self.c similarity index 100% rename from lib/emscripten-tests/emtests/test_dlfcn_self.c rename to tests/emscripten_resources/emtests/test_dlfcn_self.c diff --git a/lib/emscripten-tests/emtests/test_dlfcn_self.out b/tests/emscripten_resources/emtests/test_dlfcn_self.out similarity index 100% rename from lib/emscripten-tests/emtests/test_dlfcn_self.out rename to tests/emscripten_resources/emtests/test_dlfcn_self.out diff --git a/lib/emscripten-tests/emtests/test_dlmalloc_partial_2.c b/tests/emscripten_resources/emtests/test_dlmalloc_partial_2.c similarity index 100% rename from lib/emscripten-tests/emtests/test_dlmalloc_partial_2.c rename to tests/emscripten_resources/emtests/test_dlmalloc_partial_2.c diff --git a/lib/emscripten-tests/emtests/test_dlmalloc_partial_2.out b/tests/emscripten_resources/emtests/test_dlmalloc_partial_2.out similarity index 100% rename from lib/emscripten-tests/emtests/test_dlmalloc_partial_2.out rename to tests/emscripten_resources/emtests/test_dlmalloc_partial_2.out diff --git a/lib/emscripten-tests/emtests/test_dlmalloc_partial_2.wasm b/tests/emscripten_resources/emtests/test_dlmalloc_partial_2.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_dlmalloc_partial_2.wasm rename to tests/emscripten_resources/emtests/test_dlmalloc_partial_2.wasm diff --git a/lib/emscripten-tests/emtests/test_double_i64_conversion.c b/tests/emscripten_resources/emtests/test_double_i64_conversion.c similarity index 100% rename from lib/emscripten-tests/emtests/test_double_i64_conversion.c rename to tests/emscripten_resources/emtests/test_double_i64_conversion.c diff --git a/lib/emscripten-tests/emtests/test_double_i64_conversion.out b/tests/emscripten_resources/emtests/test_double_i64_conversion.out similarity index 100% rename from lib/emscripten-tests/emtests/test_double_i64_conversion.out rename to tests/emscripten_resources/emtests/test_double_i64_conversion.out diff --git a/lib/emscripten-tests/emtests/test_double_varargs.c b/tests/emscripten_resources/emtests/test_double_varargs.c similarity index 100% rename from lib/emscripten-tests/emtests/test_double_varargs.c rename to tests/emscripten_resources/emtests/test_double_varargs.c diff --git a/lib/emscripten-tests/emtests/test_double_varargs.out b/tests/emscripten_resources/emtests/test_double_varargs.out similarity index 100% rename from lib/emscripten-tests/emtests/test_double_varargs.out rename to tests/emscripten_resources/emtests/test_double_varargs.out diff --git a/lib/emscripten-tests/emtests/test_double_varargs.wasm b/tests/emscripten_resources/emtests/test_double_varargs.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_double_varargs.wasm rename to tests/emscripten_resources/emtests/test_double_varargs.wasm diff --git a/lib/emscripten-tests/emtests/test_dynamic_cast.c b/tests/emscripten_resources/emtests/test_dynamic_cast.c similarity index 100% rename from lib/emscripten-tests/emtests/test_dynamic_cast.c rename to tests/emscripten_resources/emtests/test_dynamic_cast.c diff --git a/lib/emscripten-tests/emtests/test_dynamic_cast.out b/tests/emscripten_resources/emtests/test_dynamic_cast.out similarity index 100% rename from lib/emscripten-tests/emtests/test_dynamic_cast.out rename to tests/emscripten_resources/emtests/test_dynamic_cast.out diff --git a/lib/emscripten-tests/emtests/test_dynamic_cast_2.c b/tests/emscripten_resources/emtests/test_dynamic_cast_2.c similarity index 100% rename from lib/emscripten-tests/emtests/test_dynamic_cast_2.c rename to tests/emscripten_resources/emtests/test_dynamic_cast_2.c diff --git a/lib/emscripten-tests/emtests/test_dynamic_cast_2.out b/tests/emscripten_resources/emtests/test_dynamic_cast_2.out similarity index 100% rename from lib/emscripten-tests/emtests/test_dynamic_cast_2.out rename to tests/emscripten_resources/emtests/test_dynamic_cast_2.out diff --git a/lib/emscripten-tests/emtests/test_dynamic_cast_b.c b/tests/emscripten_resources/emtests/test_dynamic_cast_b.c similarity index 100% rename from lib/emscripten-tests/emtests/test_dynamic_cast_b.c rename to tests/emscripten_resources/emtests/test_dynamic_cast_b.c diff --git a/lib/emscripten-tests/emtests/test_dynamic_cast_b.out b/tests/emscripten_resources/emtests/test_dynamic_cast_b.out similarity index 100% rename from lib/emscripten-tests/emtests/test_dynamic_cast_b.out rename to tests/emscripten_resources/emtests/test_dynamic_cast_b.out diff --git a/lib/emscripten-tests/emtests/test_em_asm.cpp b/tests/emscripten_resources/emtests/test_em_asm.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_em_asm.cpp rename to tests/emscripten_resources/emtests/test_em_asm.cpp diff --git a/lib/emscripten-tests/emtests/test_em_asm.out b/tests/emscripten_resources/emtests/test_em_asm.out similarity index 100% rename from lib/emscripten-tests/emtests/test_em_asm.out rename to tests/emscripten_resources/emtests/test_em_asm.out diff --git a/lib/emscripten-tests/emtests/test_em_asm.wasm b/tests/emscripten_resources/emtests/test_em_asm.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_em_asm.wasm rename to tests/emscripten_resources/emtests/test_em_asm.wasm diff --git a/lib/emscripten-tests/emtests/test_em_asm_2.cpp b/tests/emscripten_resources/emtests/test_em_asm_2.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_em_asm_2.cpp rename to tests/emscripten_resources/emtests/test_em_asm_2.cpp diff --git a/lib/emscripten-tests/emtests/test_em_asm_2.out b/tests/emscripten_resources/emtests/test_em_asm_2.out similarity index 100% rename from lib/emscripten-tests/emtests/test_em_asm_2.out rename to tests/emscripten_resources/emtests/test_em_asm_2.out diff --git a/lib/emscripten-tests/emtests/test_em_asm_2.wasm b/tests/emscripten_resources/emtests/test_em_asm_2.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_em_asm_2.wasm rename to tests/emscripten_resources/emtests/test_em_asm_2.wasm diff --git a/lib/emscripten-tests/emtests/test_em_asm_parameter_pack.cpp b/tests/emscripten_resources/emtests/test_em_asm_parameter_pack.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_em_asm_parameter_pack.cpp rename to tests/emscripten_resources/emtests/test_em_asm_parameter_pack.cpp diff --git a/lib/emscripten-tests/emtests/test_em_asm_parameter_pack.out b/tests/emscripten_resources/emtests/test_em_asm_parameter_pack.out similarity index 100% rename from lib/emscripten-tests/emtests/test_em_asm_parameter_pack.out rename to tests/emscripten_resources/emtests/test_em_asm_parameter_pack.out diff --git a/lib/emscripten-tests/emtests/test_em_asm_parameter_pack.wasm b/tests/emscripten_resources/emtests/test_em_asm_parameter_pack.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_em_asm_parameter_pack.wasm rename to tests/emscripten_resources/emtests/test_em_asm_parameter_pack.wasm diff --git a/lib/emscripten-tests/emtests/test_em_asm_signatures.cpp b/tests/emscripten_resources/emtests/test_em_asm_signatures.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_em_asm_signatures.cpp rename to tests/emscripten_resources/emtests/test_em_asm_signatures.cpp diff --git a/lib/emscripten-tests/emtests/test_em_asm_signatures.out b/tests/emscripten_resources/emtests/test_em_asm_signatures.out similarity index 100% rename from lib/emscripten-tests/emtests/test_em_asm_signatures.out rename to tests/emscripten_resources/emtests/test_em_asm_signatures.out diff --git a/lib/emscripten-tests/emtests/test_em_asm_signatures.wasm b/tests/emscripten_resources/emtests/test_em_asm_signatures.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_em_asm_signatures.wasm rename to tests/emscripten_resources/emtests/test_em_asm_signatures.wasm diff --git a/lib/emscripten-tests/emtests/test_em_asm_unicode.cpp b/tests/emscripten_resources/emtests/test_em_asm_unicode.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_em_asm_unicode.cpp rename to tests/emscripten_resources/emtests/test_em_asm_unicode.cpp diff --git a/lib/emscripten-tests/emtests/test_em_asm_unicode.out b/tests/emscripten_resources/emtests/test_em_asm_unicode.out similarity index 100% rename from lib/emscripten-tests/emtests/test_em_asm_unicode.out rename to tests/emscripten_resources/emtests/test_em_asm_unicode.out diff --git a/lib/emscripten-tests/emtests/test_em_asm_unicode.wasm b/tests/emscripten_resources/emtests/test_em_asm_unicode.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_em_asm_unicode.wasm rename to tests/emscripten_resources/emtests/test_em_asm_unicode.wasm diff --git a/lib/emscripten-tests/emtests/test_em_asm_unused_arguments.cpp b/tests/emscripten_resources/emtests/test_em_asm_unused_arguments.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_em_asm_unused_arguments.cpp rename to tests/emscripten_resources/emtests/test_em_asm_unused_arguments.cpp diff --git a/lib/emscripten-tests/emtests/test_em_asm_unused_arguments.out b/tests/emscripten_resources/emtests/test_em_asm_unused_arguments.out similarity index 100% rename from lib/emscripten-tests/emtests/test_em_asm_unused_arguments.out rename to tests/emscripten_resources/emtests/test_em_asm_unused_arguments.out diff --git a/lib/emscripten-tests/emtests/test_em_asm_unused_arguments.wasm b/tests/emscripten_resources/emtests/test_em_asm_unused_arguments.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_em_asm_unused_arguments.wasm rename to tests/emscripten_resources/emtests/test_em_asm_unused_arguments.wasm diff --git a/lib/emscripten-tests/emtests/test_em_js.cpp b/tests/emscripten_resources/emtests/test_em_js.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_em_js.cpp rename to tests/emscripten_resources/emtests/test_em_js.cpp diff --git a/lib/emscripten-tests/emtests/test_em_js.out b/tests/emscripten_resources/emtests/test_em_js.out similarity index 100% rename from lib/emscripten-tests/emtests/test_em_js.out rename to tests/emscripten_resources/emtests/test_em_js.out diff --git a/lib/emscripten-tests/emtests/test_em_js.wasm b/tests/emscripten_resources/emtests/test_em_js.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_em_js.wasm rename to tests/emscripten_resources/emtests/test_em_js.wasm diff --git a/lib/emscripten-tests/emtests/test_embind_5.cpp b/tests/emscripten_resources/emtests/test_embind_5.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_embind_5.cpp rename to tests/emscripten_resources/emtests/test_embind_5.cpp diff --git a/lib/emscripten-tests/emtests/test_embind_5.out b/tests/emscripten_resources/emtests/test_embind_5.out similarity index 100% rename from lib/emscripten-tests/emtests/test_embind_5.out rename to tests/emscripten_resources/emtests/test_embind_5.out diff --git a/lib/emscripten-tests/emtests/test_emmalloc.cpp b/tests/emscripten_resources/emtests/test_emmalloc.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_emmalloc.cpp rename to tests/emscripten_resources/emtests/test_emmalloc.cpp diff --git a/lib/emscripten-tests/emtests/test_emmalloc.txt b/tests/emscripten_resources/emtests/test_emmalloc.txt similarity index 100% rename from lib/emscripten-tests/emtests/test_emmalloc.txt rename to tests/emscripten_resources/emtests/test_emmalloc.txt diff --git a/lib/emscripten-tests/emtests/test_emptyclass.c b/tests/emscripten_resources/emtests/test_emptyclass.c similarity index 100% rename from lib/emscripten-tests/emtests/test_emptyclass.c rename to tests/emscripten_resources/emtests/test_emptyclass.c diff --git a/lib/emscripten-tests/emtests/test_emptyclass.out b/tests/emscripten_resources/emtests/test_emptyclass.out similarity index 100% rename from lib/emscripten-tests/emtests/test_emptyclass.out rename to tests/emscripten_resources/emtests/test_emptyclass.out diff --git a/lib/emscripten-tests/emtests/test_emscripten_api.cpp b/tests/emscripten_resources/emtests/test_emscripten_api.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_emscripten_api.cpp rename to tests/emscripten_resources/emtests/test_emscripten_api.cpp diff --git a/lib/emscripten-tests/emtests/test_emscripten_api.out b/tests/emscripten_resources/emtests/test_emscripten_api.out similarity index 100% rename from lib/emscripten-tests/emtests/test_emscripten_api.out rename to tests/emscripten_resources/emtests/test_emscripten_api.out diff --git a/lib/emscripten-tests/emtests/test_emscripten_api.wasm b/tests/emscripten_resources/emtests/test_emscripten_api.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_emscripten_api.wasm rename to tests/emscripten_resources/emtests/test_emscripten_api.wasm diff --git a/lib/emscripten-tests/emtests/test_emulate_function_pointer_casts.cpp b/tests/emscripten_resources/emtests/test_emulate_function_pointer_casts.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_emulate_function_pointer_casts.cpp rename to tests/emscripten_resources/emtests/test_emulate_function_pointer_casts.cpp diff --git a/lib/emscripten-tests/emtests/test_emulate_function_pointer_casts.wasm b/tests/emscripten_resources/emtests/test_emulate_function_pointer_casts.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_emulate_function_pointer_casts.wasm rename to tests/emscripten_resources/emtests/test_emulate_function_pointer_casts.wasm diff --git a/lib/emscripten-tests/emtests/test_erf.c b/tests/emscripten_resources/emtests/test_erf.c similarity index 100% rename from lib/emscripten-tests/emtests/test_erf.c rename to tests/emscripten_resources/emtests/test_erf.c diff --git a/lib/emscripten-tests/emtests/test_erf.out b/tests/emscripten_resources/emtests/test_erf.out similarity index 100% rename from lib/emscripten-tests/emtests/test_erf.out rename to tests/emscripten_resources/emtests/test_erf.out diff --git a/lib/emscripten-tests/emtests/test_erf.wasm b/tests/emscripten_resources/emtests/test_erf.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_erf.wasm rename to tests/emscripten_resources/emtests/test_erf.wasm diff --git a/lib/emscripten-tests/emtests/test_errar.c b/tests/emscripten_resources/emtests/test_errar.c similarity index 100% rename from lib/emscripten-tests/emtests/test_errar.c rename to tests/emscripten_resources/emtests/test_errar.c diff --git a/lib/emscripten-tests/emtests/test_errar.out b/tests/emscripten_resources/emtests/test_errar.out similarity index 100% rename from lib/emscripten-tests/emtests/test_errar.out rename to tests/emscripten_resources/emtests/test_errar.out diff --git a/lib/emscripten-tests/emtests/test_errar.wasm b/tests/emscripten_resources/emtests/test_errar.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_errar.wasm rename to tests/emscripten_resources/emtests/test_errar.wasm diff --git a/lib/emscripten-tests/emtests/test_exceptions_2.cpp b/tests/emscripten_resources/emtests/test_exceptions_2.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_2.cpp rename to tests/emscripten_resources/emtests/test_exceptions_2.cpp diff --git a/lib/emscripten-tests/emtests/test_exceptions_2.out b/tests/emscripten_resources/emtests/test_exceptions_2.out similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_2.out rename to tests/emscripten_resources/emtests/test_exceptions_2.out diff --git a/lib/emscripten-tests/emtests/test_exceptions_2.wasm b/tests/emscripten_resources/emtests/test_exceptions_2.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_2.wasm rename to tests/emscripten_resources/emtests/test_exceptions_2.wasm diff --git a/lib/emscripten-tests/emtests/test_exceptions_alias.c b/tests/emscripten_resources/emtests/test_exceptions_alias.c similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_alias.c rename to tests/emscripten_resources/emtests/test_exceptions_alias.c diff --git a/lib/emscripten-tests/emtests/test_exceptions_alias.out b/tests/emscripten_resources/emtests/test_exceptions_alias.out similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_alias.out rename to tests/emscripten_resources/emtests/test_exceptions_alias.out diff --git a/lib/emscripten-tests/emtests/test_exceptions_convert.cpp b/tests/emscripten_resources/emtests/test_exceptions_convert.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_convert.cpp rename to tests/emscripten_resources/emtests/test_exceptions_convert.cpp diff --git a/lib/emscripten-tests/emtests/test_exceptions_convert.txt b/tests/emscripten_resources/emtests/test_exceptions_convert.txt similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_convert.txt rename to tests/emscripten_resources/emtests/test_exceptions_convert.txt diff --git a/lib/emscripten-tests/emtests/test_exceptions_convert.wasm b/tests/emscripten_resources/emtests/test_exceptions_convert.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_convert.wasm rename to tests/emscripten_resources/emtests/test_exceptions_convert.wasm diff --git a/lib/emscripten-tests/emtests/test_exceptions_destroy_virtual.cpp b/tests/emscripten_resources/emtests/test_exceptions_destroy_virtual.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_destroy_virtual.cpp rename to tests/emscripten_resources/emtests/test_exceptions_destroy_virtual.cpp diff --git a/lib/emscripten-tests/emtests/test_exceptions_destroy_virtual.txt b/tests/emscripten_resources/emtests/test_exceptions_destroy_virtual.txt similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_destroy_virtual.txt rename to tests/emscripten_resources/emtests/test_exceptions_destroy_virtual.txt diff --git a/lib/emscripten-tests/emtests/test_exceptions_destroy_virtual.wasm b/tests/emscripten_resources/emtests/test_exceptions_destroy_virtual.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_destroy_virtual.wasm rename to tests/emscripten_resources/emtests/test_exceptions_destroy_virtual.wasm diff --git a/lib/emscripten-tests/emtests/test_exceptions_libcxx.cpp b/tests/emscripten_resources/emtests/test_exceptions_libcxx.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_libcxx.cpp rename to tests/emscripten_resources/emtests/test_exceptions_libcxx.cpp diff --git a/lib/emscripten-tests/emtests/test_exceptions_libcxx.txt b/tests/emscripten_resources/emtests/test_exceptions_libcxx.txt similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_libcxx.txt rename to tests/emscripten_resources/emtests/test_exceptions_libcxx.txt diff --git a/lib/emscripten-tests/emtests/test_exceptions_libcxx.wasm b/tests/emscripten_resources/emtests/test_exceptions_libcxx.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_libcxx.wasm rename to tests/emscripten_resources/emtests/test_exceptions_libcxx.wasm diff --git a/lib/emscripten-tests/emtests/test_exceptions_multi.cpp b/tests/emscripten_resources/emtests/test_exceptions_multi.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_multi.cpp rename to tests/emscripten_resources/emtests/test_exceptions_multi.cpp diff --git a/lib/emscripten-tests/emtests/test_exceptions_multi.out b/tests/emscripten_resources/emtests/test_exceptions_multi.out similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_multi.out rename to tests/emscripten_resources/emtests/test_exceptions_multi.out diff --git a/lib/emscripten-tests/emtests/test_exceptions_multi.wasm b/tests/emscripten_resources/emtests/test_exceptions_multi.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_multi.wasm rename to tests/emscripten_resources/emtests/test_exceptions_multi.wasm diff --git a/lib/emscripten-tests/emtests/test_exceptions_multiple_inherit.cpp b/tests/emscripten_resources/emtests/test_exceptions_multiple_inherit.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_multiple_inherit.cpp rename to tests/emscripten_resources/emtests/test_exceptions_multiple_inherit.cpp diff --git a/lib/emscripten-tests/emtests/test_exceptions_multiple_inherit.txt b/tests/emscripten_resources/emtests/test_exceptions_multiple_inherit.txt similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_multiple_inherit.txt rename to tests/emscripten_resources/emtests/test_exceptions_multiple_inherit.txt diff --git a/lib/emscripten-tests/emtests/test_exceptions_multiple_inherit.wasm b/tests/emscripten_resources/emtests/test_exceptions_multiple_inherit.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_multiple_inherit.wasm rename to tests/emscripten_resources/emtests/test_exceptions_multiple_inherit.wasm diff --git a/lib/emscripten-tests/emtests/test_exceptions_multiple_inherit_rethrow.cpp b/tests/emscripten_resources/emtests/test_exceptions_multiple_inherit_rethrow.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_multiple_inherit_rethrow.cpp rename to tests/emscripten_resources/emtests/test_exceptions_multiple_inherit_rethrow.cpp diff --git a/lib/emscripten-tests/emtests/test_exceptions_multiple_inherit_rethrow.txt b/tests/emscripten_resources/emtests/test_exceptions_multiple_inherit_rethrow.txt similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_multiple_inherit_rethrow.txt rename to tests/emscripten_resources/emtests/test_exceptions_multiple_inherit_rethrow.txt diff --git a/lib/emscripten-tests/emtests/test_exceptions_multiple_inherit_rethrow.wasm b/tests/emscripten_resources/emtests/test_exceptions_multiple_inherit_rethrow.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_multiple_inherit_rethrow.wasm rename to tests/emscripten_resources/emtests/test_exceptions_multiple_inherit_rethrow.wasm diff --git a/lib/emscripten-tests/emtests/test_exceptions_primary.cpp b/tests/emscripten_resources/emtests/test_exceptions_primary.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_primary.cpp rename to tests/emscripten_resources/emtests/test_exceptions_primary.cpp diff --git a/lib/emscripten-tests/emtests/test_exceptions_primary.txt b/tests/emscripten_resources/emtests/test_exceptions_primary.txt similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_primary.txt rename to tests/emscripten_resources/emtests/test_exceptions_primary.txt diff --git a/lib/emscripten-tests/emtests/test_exceptions_primary.wasm b/tests/emscripten_resources/emtests/test_exceptions_primary.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_primary.wasm rename to tests/emscripten_resources/emtests/test_exceptions_primary.wasm diff --git a/lib/emscripten-tests/emtests/test_exceptions_refcount.cpp b/tests/emscripten_resources/emtests/test_exceptions_refcount.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_refcount.cpp rename to tests/emscripten_resources/emtests/test_exceptions_refcount.cpp diff --git a/lib/emscripten-tests/emtests/test_exceptions_refcount.txt b/tests/emscripten_resources/emtests/test_exceptions_refcount.txt similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_refcount.txt rename to tests/emscripten_resources/emtests/test_exceptions_refcount.txt diff --git a/lib/emscripten-tests/emtests/test_exceptions_refcount.wasm b/tests/emscripten_resources/emtests/test_exceptions_refcount.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_refcount.wasm rename to tests/emscripten_resources/emtests/test_exceptions_refcount.wasm diff --git a/lib/emscripten-tests/emtests/test_exceptions_resume.cpp b/tests/emscripten_resources/emtests/test_exceptions_resume.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_resume.cpp rename to tests/emscripten_resources/emtests/test_exceptions_resume.cpp diff --git a/lib/emscripten-tests/emtests/test_exceptions_resume.txt b/tests/emscripten_resources/emtests/test_exceptions_resume.txt similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_resume.txt rename to tests/emscripten_resources/emtests/test_exceptions_resume.txt diff --git a/lib/emscripten-tests/emtests/test_exceptions_resume.wasm b/tests/emscripten_resources/emtests/test_exceptions_resume.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_resume.wasm rename to tests/emscripten_resources/emtests/test_exceptions_resume.wasm diff --git a/lib/emscripten-tests/emtests/test_exceptions_rethrow.cpp b/tests/emscripten_resources/emtests/test_exceptions_rethrow.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_rethrow.cpp rename to tests/emscripten_resources/emtests/test_exceptions_rethrow.cpp diff --git a/lib/emscripten-tests/emtests/test_exceptions_rethrow.txt b/tests/emscripten_resources/emtests/test_exceptions_rethrow.txt similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_rethrow.txt rename to tests/emscripten_resources/emtests/test_exceptions_rethrow.txt diff --git a/lib/emscripten-tests/emtests/test_exceptions_rethrow.wasm b/tests/emscripten_resources/emtests/test_exceptions_rethrow.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_rethrow.wasm rename to tests/emscripten_resources/emtests/test_exceptions_rethrow.wasm diff --git a/lib/emscripten-tests/emtests/test_exceptions_simplify_cfg.cpp b/tests/emscripten_resources/emtests/test_exceptions_simplify_cfg.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_simplify_cfg.cpp rename to tests/emscripten_resources/emtests/test_exceptions_simplify_cfg.cpp diff --git a/lib/emscripten-tests/emtests/test_exceptions_simplify_cfg.txt b/tests/emscripten_resources/emtests/test_exceptions_simplify_cfg.txt similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_simplify_cfg.txt rename to tests/emscripten_resources/emtests/test_exceptions_simplify_cfg.txt diff --git a/lib/emscripten-tests/emtests/test_exceptions_simplify_cfg.wasm b/tests/emscripten_resources/emtests/test_exceptions_simplify_cfg.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_simplify_cfg.wasm rename to tests/emscripten_resources/emtests/test_exceptions_simplify_cfg.wasm diff --git a/lib/emscripten-tests/emtests/test_exceptions_std.cpp b/tests/emscripten_resources/emtests/test_exceptions_std.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_std.cpp rename to tests/emscripten_resources/emtests/test_exceptions_std.cpp diff --git a/lib/emscripten-tests/emtests/test_exceptions_std.out b/tests/emscripten_resources/emtests/test_exceptions_std.out similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_std.out rename to tests/emscripten_resources/emtests/test_exceptions_std.out diff --git a/lib/emscripten-tests/emtests/test_exceptions_std.wasm b/tests/emscripten_resources/emtests/test_exceptions_std.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_std.wasm rename to tests/emscripten_resources/emtests/test_exceptions_std.wasm diff --git a/lib/emscripten-tests/emtests/test_exceptions_typed.c b/tests/emscripten_resources/emtests/test_exceptions_typed.c similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_typed.c rename to tests/emscripten_resources/emtests/test_exceptions_typed.c diff --git a/lib/emscripten-tests/emtests/test_exceptions_typed.out b/tests/emscripten_resources/emtests/test_exceptions_typed.out similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_typed.out rename to tests/emscripten_resources/emtests/test_exceptions_typed.out diff --git a/lib/emscripten-tests/emtests/test_exceptions_virtual_inheritance.cpp b/tests/emscripten_resources/emtests/test_exceptions_virtual_inheritance.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_virtual_inheritance.cpp rename to tests/emscripten_resources/emtests/test_exceptions_virtual_inheritance.cpp diff --git a/lib/emscripten-tests/emtests/test_exceptions_virtual_inheritance.txt b/tests/emscripten_resources/emtests/test_exceptions_virtual_inheritance.txt similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_virtual_inheritance.txt rename to tests/emscripten_resources/emtests/test_exceptions_virtual_inheritance.txt diff --git a/lib/emscripten-tests/emtests/test_exceptions_virtual_inheritance.wasm b/tests/emscripten_resources/emtests/test_exceptions_virtual_inheritance.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_virtual_inheritance.wasm rename to tests/emscripten_resources/emtests/test_exceptions_virtual_inheritance.wasm diff --git a/lib/emscripten-tests/emtests/test_exceptions_white_list.cpp b/tests/emscripten_resources/emtests/test_exceptions_white_list.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_white_list.cpp rename to tests/emscripten_resources/emtests/test_exceptions_white_list.cpp diff --git a/lib/emscripten-tests/emtests/test_exceptions_white_list.out b/tests/emscripten_resources/emtests/test_exceptions_white_list.out similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_white_list.out rename to tests/emscripten_resources/emtests/test_exceptions_white_list.out diff --git a/lib/emscripten-tests/emtests/test_exceptions_white_list.wasm b/tests/emscripten_resources/emtests/test_exceptions_white_list.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_white_list.wasm rename to tests/emscripten_resources/emtests/test_exceptions_white_list.wasm diff --git a/lib/emscripten-tests/emtests/test_exceptions_white_list_2.c b/tests/emscripten_resources/emtests/test_exceptions_white_list_2.c similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_white_list_2.c rename to tests/emscripten_resources/emtests/test_exceptions_white_list_2.c diff --git a/lib/emscripten-tests/emtests/test_exceptions_white_list_2.out b/tests/emscripten_resources/emtests/test_exceptions_white_list_2.out similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_white_list_2.out rename to tests/emscripten_resources/emtests/test_exceptions_white_list_2.out diff --git a/lib/emscripten-tests/emtests/test_exceptions_white_list_empty.out b/tests/emscripten_resources/emtests/test_exceptions_white_list_empty.out similarity index 100% rename from lib/emscripten-tests/emtests/test_exceptions_white_list_empty.out rename to tests/emscripten_resources/emtests/test_exceptions_white_list_empty.out diff --git a/lib/emscripten-tests/emtests/test_execvp.c b/tests/emscripten_resources/emtests/test_execvp.c similarity index 100% rename from lib/emscripten-tests/emtests/test_execvp.c rename to tests/emscripten_resources/emtests/test_execvp.c diff --git a/lib/emscripten-tests/emtests/test_execvp.out b/tests/emscripten_resources/emtests/test_execvp.out similarity index 100% rename from lib/emscripten-tests/emtests/test_execvp.out rename to tests/emscripten_resources/emtests/test_execvp.out diff --git a/lib/emscripten-tests/emtests/test_execvp.wasm b/tests/emscripten_resources/emtests/test_execvp.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_execvp.wasm rename to tests/emscripten_resources/emtests/test_execvp.wasm diff --git a/lib/emscripten-tests/emtests/test_execvp_windows.c b/tests/emscripten_resources/emtests/test_execvp_windows.c similarity index 100% rename from lib/emscripten-tests/emtests/test_execvp_windows.c rename to tests/emscripten_resources/emtests/test_execvp_windows.c diff --git a/lib/emscripten-tests/emtests/test_execvp_windows.wasm b/tests/emscripten_resources/emtests/test_execvp_windows.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_execvp_windows.wasm rename to tests/emscripten_resources/emtests/test_execvp_windows.wasm diff --git a/lib/emscripten-tests/emtests/test_fakestat.c b/tests/emscripten_resources/emtests/test_fakestat.c similarity index 100% rename from lib/emscripten-tests/emtests/test_fakestat.c rename to tests/emscripten_resources/emtests/test_fakestat.c diff --git a/lib/emscripten-tests/emtests/test_fakestat.out b/tests/emscripten_resources/emtests/test_fakestat.out similarity index 100% rename from lib/emscripten-tests/emtests/test_fakestat.out rename to tests/emscripten_resources/emtests/test_fakestat.out diff --git a/lib/emscripten-tests/emtests/test_fast_math.c b/tests/emscripten_resources/emtests/test_fast_math.c similarity index 100% rename from lib/emscripten-tests/emtests/test_fast_math.c rename to tests/emscripten_resources/emtests/test_fast_math.c diff --git a/lib/emscripten-tests/emtests/test_fast_math.out b/tests/emscripten_resources/emtests/test_fast_math.out similarity index 100% rename from lib/emscripten-tests/emtests/test_fast_math.out rename to tests/emscripten_resources/emtests/test_fast_math.out diff --git a/lib/emscripten-tests/emtests/test_fast_math.wasm b/tests/emscripten_resources/emtests/test_fast_math.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_fast_math.wasm rename to tests/emscripten_resources/emtests/test_fast_math.wasm diff --git a/lib/emscripten-tests/emtests/test_fcvt.c b/tests/emscripten_resources/emtests/test_fcvt.c similarity index 100% rename from lib/emscripten-tests/emtests/test_fcvt.c rename to tests/emscripten_resources/emtests/test_fcvt.c diff --git a/lib/emscripten-tests/emtests/test_fcvt.out b/tests/emscripten_resources/emtests/test_fcvt.out similarity index 100% rename from lib/emscripten-tests/emtests/test_fcvt.out rename to tests/emscripten_resources/emtests/test_fcvt.out diff --git a/lib/emscripten-tests/emtests/test_flexarray_struct.c b/tests/emscripten_resources/emtests/test_flexarray_struct.c similarity index 100% rename from lib/emscripten-tests/emtests/test_flexarray_struct.c rename to tests/emscripten_resources/emtests/test_flexarray_struct.c diff --git a/lib/emscripten-tests/emtests/test_flexarray_struct.out b/tests/emscripten_resources/emtests/test_flexarray_struct.out similarity index 100% rename from lib/emscripten-tests/emtests/test_flexarray_struct.out rename to tests/emscripten_resources/emtests/test_flexarray_struct.out diff --git a/lib/emscripten-tests/emtests/test_flexarray_struct.wasm b/tests/emscripten_resources/emtests/test_flexarray_struct.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_flexarray_struct.wasm rename to tests/emscripten_resources/emtests/test_flexarray_struct.wasm diff --git a/lib/emscripten-tests/emtests/test_float32_precise.c b/tests/emscripten_resources/emtests/test_float32_precise.c similarity index 100% rename from lib/emscripten-tests/emtests/test_float32_precise.c rename to tests/emscripten_resources/emtests/test_float32_precise.c diff --git a/lib/emscripten-tests/emtests/test_float32_precise.out b/tests/emscripten_resources/emtests/test_float32_precise.out similarity index 100% rename from lib/emscripten-tests/emtests/test_float32_precise.out rename to tests/emscripten_resources/emtests/test_float32_precise.out diff --git a/lib/emscripten-tests/emtests/test_float32_precise.wasm b/tests/emscripten_resources/emtests/test_float32_precise.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_float32_precise.wasm rename to tests/emscripten_resources/emtests/test_float32_precise.wasm diff --git a/lib/emscripten-tests/emtests/test_float_builtins.c b/tests/emscripten_resources/emtests/test_float_builtins.c similarity index 100% rename from lib/emscripten-tests/emtests/test_float_builtins.c rename to tests/emscripten_resources/emtests/test_float_builtins.c diff --git a/lib/emscripten-tests/emtests/test_float_builtins.out b/tests/emscripten_resources/emtests/test_float_builtins.out similarity index 100% rename from lib/emscripten-tests/emtests/test_float_builtins.out rename to tests/emscripten_resources/emtests/test_float_builtins.out diff --git a/lib/emscripten-tests/emtests/test_float_builtins.wasm b/tests/emscripten_resources/emtests/test_float_builtins.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_float_builtins.wasm rename to tests/emscripten_resources/emtests/test_float_builtins.wasm diff --git a/lib/emscripten-tests/emtests/test_floatvars.c b/tests/emscripten_resources/emtests/test_floatvars.c similarity index 100% rename from lib/emscripten-tests/emtests/test_floatvars.c rename to tests/emscripten_resources/emtests/test_floatvars.c diff --git a/lib/emscripten-tests/emtests/test_floatvars.out b/tests/emscripten_resources/emtests/test_floatvars.out similarity index 100% rename from lib/emscripten-tests/emtests/test_floatvars.out rename to tests/emscripten_resources/emtests/test_floatvars.out diff --git a/lib/emscripten-tests/emtests/test_frexp.c b/tests/emscripten_resources/emtests/test_frexp.c similarity index 100% rename from lib/emscripten-tests/emtests/test_frexp.c rename to tests/emscripten_resources/emtests/test_frexp.c diff --git a/lib/emscripten-tests/emtests/test_frexp.out b/tests/emscripten_resources/emtests/test_frexp.out similarity index 100% rename from lib/emscripten-tests/emtests/test_frexp.out rename to tests/emscripten_resources/emtests/test_frexp.out diff --git a/lib/emscripten-tests/emtests/test_frexp.wasm b/tests/emscripten_resources/emtests/test_frexp.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_frexp.wasm rename to tests/emscripten_resources/emtests/test_frexp.wasm diff --git a/lib/emscripten-tests/emtests/test_funcptr.c b/tests/emscripten_resources/emtests/test_funcptr.c similarity index 100% rename from lib/emscripten-tests/emtests/test_funcptr.c rename to tests/emscripten_resources/emtests/test_funcptr.c diff --git a/lib/emscripten-tests/emtests/test_funcptr.out b/tests/emscripten_resources/emtests/test_funcptr.out similarity index 100% rename from lib/emscripten-tests/emtests/test_funcptr.out rename to tests/emscripten_resources/emtests/test_funcptr.out diff --git a/lib/emscripten-tests/emtests/test_funcptr.wasm b/tests/emscripten_resources/emtests/test_funcptr.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_funcptr.wasm rename to tests/emscripten_resources/emtests/test_funcptr.wasm diff --git a/lib/emscripten-tests/emtests/test_funcptr_import_type.cpp b/tests/emscripten_resources/emtests/test_funcptr_import_type.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_funcptr_import_type.cpp rename to tests/emscripten_resources/emtests/test_funcptr_import_type.cpp diff --git a/lib/emscripten-tests/emtests/test_funcptr_import_type.out b/tests/emscripten_resources/emtests/test_funcptr_import_type.out similarity index 100% rename from lib/emscripten-tests/emtests/test_funcptr_import_type.out rename to tests/emscripten_resources/emtests/test_funcptr_import_type.out diff --git a/lib/emscripten-tests/emtests/test_funcptr_namecollide.c b/tests/emscripten_resources/emtests/test_funcptr_namecollide.c similarity index 100% rename from lib/emscripten-tests/emtests/test_funcptr_namecollide.c rename to tests/emscripten_resources/emtests/test_funcptr_namecollide.c diff --git a/lib/emscripten-tests/emtests/test_funcptr_namecollide.out b/tests/emscripten_resources/emtests/test_funcptr_namecollide.out similarity index 100% rename from lib/emscripten-tests/emtests/test_funcptr_namecollide.out rename to tests/emscripten_resources/emtests/test_funcptr_namecollide.out diff --git a/lib/emscripten-tests/emtests/test_funcptr_namecollide.wasm b/tests/emscripten_resources/emtests/test_funcptr_namecollide.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_funcptr_namecollide.wasm rename to tests/emscripten_resources/emtests/test_funcptr_namecollide.wasm diff --git a/lib/emscripten-tests/emtests/test_funcptrfunc.c b/tests/emscripten_resources/emtests/test_funcptrfunc.c similarity index 100% rename from lib/emscripten-tests/emtests/test_funcptrfunc.c rename to tests/emscripten_resources/emtests/test_funcptrfunc.c diff --git a/lib/emscripten-tests/emtests/test_funcptrfunc.out b/tests/emscripten_resources/emtests/test_funcptrfunc.out similarity index 100% rename from lib/emscripten-tests/emtests/test_funcptrfunc.out rename to tests/emscripten_resources/emtests/test_funcptrfunc.out diff --git a/lib/emscripten-tests/emtests/test_funcptrfunc.wasm b/tests/emscripten_resources/emtests/test_funcptrfunc.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_funcptrfunc.wasm rename to tests/emscripten_resources/emtests/test_funcptrfunc.wasm diff --git a/lib/emscripten-tests/emtests/test_funcs.c b/tests/emscripten_resources/emtests/test_funcs.c similarity index 100% rename from lib/emscripten-tests/emtests/test_funcs.c rename to tests/emscripten_resources/emtests/test_funcs.c diff --git a/lib/emscripten-tests/emtests/test_funcs.out b/tests/emscripten_resources/emtests/test_funcs.out similarity index 100% rename from lib/emscripten-tests/emtests/test_funcs.out rename to tests/emscripten_resources/emtests/test_funcs.out diff --git a/lib/emscripten-tests/emtests/test_funcs.wasm b/tests/emscripten_resources/emtests/test_funcs.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_funcs.wasm rename to tests/emscripten_resources/emtests/test_funcs.wasm diff --git a/lib/emscripten-tests/emtests/test_functionpointer_libfunc_varargs.c b/tests/emscripten_resources/emtests/test_functionpointer_libfunc_varargs.c similarity index 100% rename from lib/emscripten-tests/emtests/test_functionpointer_libfunc_varargs.c rename to tests/emscripten_resources/emtests/test_functionpointer_libfunc_varargs.c diff --git a/lib/emscripten-tests/emtests/test_functionpointer_libfunc_varargs.out b/tests/emscripten_resources/emtests/test_functionpointer_libfunc_varargs.out similarity index 100% rename from lib/emscripten-tests/emtests/test_functionpointer_libfunc_varargs.out rename to tests/emscripten_resources/emtests/test_functionpointer_libfunc_varargs.out diff --git a/lib/emscripten-tests/emtests/test_functionpointer_libfunc_varargs.wasm b/tests/emscripten_resources/emtests/test_functionpointer_libfunc_varargs.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_functionpointer_libfunc_varargs.wasm rename to tests/emscripten_resources/emtests/test_functionpointer_libfunc_varargs.wasm diff --git a/lib/emscripten-tests/emtests/test_fwrite_0.c b/tests/emscripten_resources/emtests/test_fwrite_0.c similarity index 100% rename from lib/emscripten-tests/emtests/test_fwrite_0.c rename to tests/emscripten_resources/emtests/test_fwrite_0.c diff --git a/lib/emscripten-tests/emtests/test_fwrite_0.out b/tests/emscripten_resources/emtests/test_fwrite_0.out similarity index 100% rename from lib/emscripten-tests/emtests/test_fwrite_0.out rename to tests/emscripten_resources/emtests/test_fwrite_0.out diff --git a/lib/emscripten-tests/emtests/test_fwrite_0.wasm b/tests/emscripten_resources/emtests/test_fwrite_0.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_fwrite_0.wasm rename to tests/emscripten_resources/emtests/test_fwrite_0.wasm diff --git a/lib/emscripten-tests/emtests/test_getcwd.c b/tests/emscripten_resources/emtests/test_getcwd.c similarity index 100% rename from lib/emscripten-tests/emtests/test_getcwd.c rename to tests/emscripten_resources/emtests/test_getcwd.c diff --git a/lib/emscripten-tests/emtests/test_getcwd.out b/tests/emscripten_resources/emtests/test_getcwd.out similarity index 100% rename from lib/emscripten-tests/emtests/test_getcwd.out rename to tests/emscripten_resources/emtests/test_getcwd.out diff --git a/lib/emscripten-tests/emtests/test_getcwd.wasm b/tests/emscripten_resources/emtests/test_getcwd.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_getcwd.wasm rename to tests/emscripten_resources/emtests/test_getcwd.wasm diff --git a/lib/emscripten-tests/emtests/test_getgep.c b/tests/emscripten_resources/emtests/test_getgep.c similarity index 100% rename from lib/emscripten-tests/emtests/test_getgep.c rename to tests/emscripten_resources/emtests/test_getgep.c diff --git a/lib/emscripten-tests/emtests/test_getgep.out b/tests/emscripten_resources/emtests/test_getgep.out similarity index 100% rename from lib/emscripten-tests/emtests/test_getgep.out rename to tests/emscripten_resources/emtests/test_getgep.out diff --git a/lib/emscripten-tests/emtests/test_getgep.wasm b/tests/emscripten_resources/emtests/test_getgep.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_getgep.wasm rename to tests/emscripten_resources/emtests/test_getgep.wasm diff --git a/lib/emscripten-tests/emtests/test_getloadavg.c b/tests/emscripten_resources/emtests/test_getloadavg.c similarity index 100% rename from lib/emscripten-tests/emtests/test_getloadavg.c rename to tests/emscripten_resources/emtests/test_getloadavg.c diff --git a/lib/emscripten-tests/emtests/test_getloadavg.out b/tests/emscripten_resources/emtests/test_getloadavg.out similarity index 100% rename from lib/emscripten-tests/emtests/test_getloadavg.out rename to tests/emscripten_resources/emtests/test_getloadavg.out diff --git a/lib/emscripten-tests/emtests/test_getloadavg.wasm b/tests/emscripten_resources/emtests/test_getloadavg.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_getloadavg.wasm rename to tests/emscripten_resources/emtests/test_getloadavg.wasm diff --git a/lib/emscripten-tests/emtests/test_getopt.c b/tests/emscripten_resources/emtests/test_getopt.c similarity index 100% rename from lib/emscripten-tests/emtests/test_getopt.c rename to tests/emscripten_resources/emtests/test_getopt.c diff --git a/lib/emscripten-tests/emtests/test_getopt.out b/tests/emscripten_resources/emtests/test_getopt.out similarity index 100% rename from lib/emscripten-tests/emtests/test_getopt.out rename to tests/emscripten_resources/emtests/test_getopt.out diff --git a/lib/emscripten-tests/emtests/test_getopt.wasm b/tests/emscripten_resources/emtests/test_getopt.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_getopt.wasm rename to tests/emscripten_resources/emtests/test_getopt.wasm diff --git a/lib/emscripten-tests/emtests/test_getopt_long.c b/tests/emscripten_resources/emtests/test_getopt_long.c similarity index 100% rename from lib/emscripten-tests/emtests/test_getopt_long.c rename to tests/emscripten_resources/emtests/test_getopt_long.c diff --git a/lib/emscripten-tests/emtests/test_getopt_long.out b/tests/emscripten_resources/emtests/test_getopt_long.out similarity index 100% rename from lib/emscripten-tests/emtests/test_getopt_long.out rename to tests/emscripten_resources/emtests/test_getopt_long.out diff --git a/lib/emscripten-tests/emtests/test_getopt_long.wasm b/tests/emscripten_resources/emtests/test_getopt_long.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_getopt_long.wasm rename to tests/emscripten_resources/emtests/test_getopt_long.wasm diff --git a/lib/emscripten-tests/emtests/test_globaldoubles.c b/tests/emscripten_resources/emtests/test_globaldoubles.c similarity index 100% rename from lib/emscripten-tests/emtests/test_globaldoubles.c rename to tests/emscripten_resources/emtests/test_globaldoubles.c diff --git a/lib/emscripten-tests/emtests/test_globaldoubles.out b/tests/emscripten_resources/emtests/test_globaldoubles.out similarity index 100% rename from lib/emscripten-tests/emtests/test_globaldoubles.out rename to tests/emscripten_resources/emtests/test_globaldoubles.out diff --git a/lib/emscripten-tests/emtests/test_globaldoubles.wasm b/tests/emscripten_resources/emtests/test_globaldoubles.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_globaldoubles.wasm rename to tests/emscripten_resources/emtests/test_globaldoubles.wasm diff --git a/lib/emscripten-tests/emtests/test_globals.c b/tests/emscripten_resources/emtests/test_globals.c similarity index 100% rename from lib/emscripten-tests/emtests/test_globals.c rename to tests/emscripten_resources/emtests/test_globals.c diff --git a/lib/emscripten-tests/emtests/test_globals.out b/tests/emscripten_resources/emtests/test_globals.out similarity index 100% rename from lib/emscripten-tests/emtests/test_globals.out rename to tests/emscripten_resources/emtests/test_globals.out diff --git a/lib/emscripten-tests/emtests/test_globals.wasm b/tests/emscripten_resources/emtests/test_globals.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_globals.wasm rename to tests/emscripten_resources/emtests/test_globals.wasm diff --git a/lib/emscripten-tests/emtests/test_gmtime.c b/tests/emscripten_resources/emtests/test_gmtime.c similarity index 100% rename from lib/emscripten-tests/emtests/test_gmtime.c rename to tests/emscripten_resources/emtests/test_gmtime.c diff --git a/lib/emscripten-tests/emtests/test_gmtime.out b/tests/emscripten_resources/emtests/test_gmtime.out similarity index 100% rename from lib/emscripten-tests/emtests/test_gmtime.out rename to tests/emscripten_resources/emtests/test_gmtime.out diff --git a/lib/emscripten-tests/emtests/test_gmtime.wasm b/tests/emscripten_resources/emtests/test_gmtime.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_gmtime.wasm rename to tests/emscripten_resources/emtests/test_gmtime.wasm diff --git a/lib/emscripten-tests/emtests/test_hello_world.c b/tests/emscripten_resources/emtests/test_hello_world.c similarity index 100% rename from lib/emscripten-tests/emtests/test_hello_world.c rename to tests/emscripten_resources/emtests/test_hello_world.c diff --git a/lib/emscripten-tests/emtests/test_hello_world.out b/tests/emscripten_resources/emtests/test_hello_world.out similarity index 100% rename from lib/emscripten-tests/emtests/test_hello_world.out rename to tests/emscripten_resources/emtests/test_hello_world.out diff --git a/lib/emscripten-tests/emtests/test_hello_world.wasm b/tests/emscripten_resources/emtests/test_hello_world.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_hello_world.wasm rename to tests/emscripten_resources/emtests/test_hello_world.wasm diff --git a/lib/emscripten-tests/emtests/test_i16_emcc_intrinsic.c b/tests/emscripten_resources/emtests/test_i16_emcc_intrinsic.c similarity index 100% rename from lib/emscripten-tests/emtests/test_i16_emcc_intrinsic.c rename to tests/emscripten_resources/emtests/test_i16_emcc_intrinsic.c diff --git a/lib/emscripten-tests/emtests/test_i16_emcc_intrinsic.out b/tests/emscripten_resources/emtests/test_i16_emcc_intrinsic.out similarity index 100% rename from lib/emscripten-tests/emtests/test_i16_emcc_intrinsic.out rename to tests/emscripten_resources/emtests/test_i16_emcc_intrinsic.out diff --git a/lib/emscripten-tests/emtests/test_i16_emcc_intrinsic.wasm b/tests/emscripten_resources/emtests/test_i16_emcc_intrinsic.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_i16_emcc_intrinsic.wasm rename to tests/emscripten_resources/emtests/test_i16_emcc_intrinsic.wasm diff --git a/lib/emscripten-tests/emtests/test_i32_mul_precise.c b/tests/emscripten_resources/emtests/test_i32_mul_precise.c similarity index 100% rename from lib/emscripten-tests/emtests/test_i32_mul_precise.c rename to tests/emscripten_resources/emtests/test_i32_mul_precise.c diff --git a/lib/emscripten-tests/emtests/test_i32_mul_precise.out b/tests/emscripten_resources/emtests/test_i32_mul_precise.out similarity index 100% rename from lib/emscripten-tests/emtests/test_i32_mul_precise.out rename to tests/emscripten_resources/emtests/test_i32_mul_precise.out diff --git a/lib/emscripten-tests/emtests/test_i32_mul_precise.wasm b/tests/emscripten_resources/emtests/test_i32_mul_precise.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_i32_mul_precise.wasm rename to tests/emscripten_resources/emtests/test_i32_mul_precise.wasm diff --git a/lib/emscripten-tests/emtests/test_i64.c b/tests/emscripten_resources/emtests/test_i64.c similarity index 100% rename from lib/emscripten-tests/emtests/test_i64.c rename to tests/emscripten_resources/emtests/test_i64.c diff --git a/lib/emscripten-tests/emtests/test_i64.out b/tests/emscripten_resources/emtests/test_i64.out similarity index 100% rename from lib/emscripten-tests/emtests/test_i64.out rename to tests/emscripten_resources/emtests/test_i64.out diff --git a/lib/emscripten-tests/emtests/test_i64.wasm b/tests/emscripten_resources/emtests/test_i64.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_i64.wasm rename to tests/emscripten_resources/emtests/test_i64.wasm diff --git a/lib/emscripten-tests/emtests/test_i64_2.c b/tests/emscripten_resources/emtests/test_i64_2.c similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_2.c rename to tests/emscripten_resources/emtests/test_i64_2.c diff --git a/lib/emscripten-tests/emtests/test_i64_2.out b/tests/emscripten_resources/emtests/test_i64_2.out similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_2.out rename to tests/emscripten_resources/emtests/test_i64_2.out diff --git a/lib/emscripten-tests/emtests/test_i64_3.c b/tests/emscripten_resources/emtests/test_i64_3.c similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_3.c rename to tests/emscripten_resources/emtests/test_i64_3.c diff --git a/lib/emscripten-tests/emtests/test_i64_3.out b/tests/emscripten_resources/emtests/test_i64_3.out similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_3.out rename to tests/emscripten_resources/emtests/test_i64_3.out diff --git a/lib/emscripten-tests/emtests/test_i64_4.c b/tests/emscripten_resources/emtests/test_i64_4.c similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_4.c rename to tests/emscripten_resources/emtests/test_i64_4.c diff --git a/lib/emscripten-tests/emtests/test_i64_4.out b/tests/emscripten_resources/emtests/test_i64_4.out similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_4.out rename to tests/emscripten_resources/emtests/test_i64_4.out diff --git a/lib/emscripten-tests/emtests/test_i64_4.wasm b/tests/emscripten_resources/emtests/test_i64_4.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_4.wasm rename to tests/emscripten_resources/emtests/test_i64_4.wasm diff --git a/lib/emscripten-tests/emtests/test_i64_7z.c b/tests/emscripten_resources/emtests/test_i64_7z.c similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_7z.c rename to tests/emscripten_resources/emtests/test_i64_7z.c diff --git a/lib/emscripten-tests/emtests/test_i64_7z.out b/tests/emscripten_resources/emtests/test_i64_7z.out similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_7z.out rename to tests/emscripten_resources/emtests/test_i64_7z.out diff --git a/lib/emscripten-tests/emtests/test_i64_7z.wasm b/tests/emscripten_resources/emtests/test_i64_7z.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_7z.wasm rename to tests/emscripten_resources/emtests/test_i64_7z.wasm diff --git a/lib/emscripten-tests/emtests/test_i64_b.c b/tests/emscripten_resources/emtests/test_i64_b.c similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_b.c rename to tests/emscripten_resources/emtests/test_i64_b.c diff --git a/lib/emscripten-tests/emtests/test_i64_b.out b/tests/emscripten_resources/emtests/test_i64_b.out similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_b.out rename to tests/emscripten_resources/emtests/test_i64_b.out diff --git a/lib/emscripten-tests/emtests/test_i64_cmp.c b/tests/emscripten_resources/emtests/test_i64_cmp.c similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_cmp.c rename to tests/emscripten_resources/emtests/test_i64_cmp.c diff --git a/lib/emscripten-tests/emtests/test_i64_cmp.out b/tests/emscripten_resources/emtests/test_i64_cmp.out similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_cmp.out rename to tests/emscripten_resources/emtests/test_i64_cmp.out diff --git a/lib/emscripten-tests/emtests/test_i64_cmp2.c b/tests/emscripten_resources/emtests/test_i64_cmp2.c similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_cmp2.c rename to tests/emscripten_resources/emtests/test_i64_cmp2.c diff --git a/lib/emscripten-tests/emtests/test_i64_cmp2.out b/tests/emscripten_resources/emtests/test_i64_cmp2.out similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_cmp2.out rename to tests/emscripten_resources/emtests/test_i64_cmp2.out diff --git a/lib/emscripten-tests/emtests/test_i64_cmp2.wasm b/tests/emscripten_resources/emtests/test_i64_cmp2.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_cmp2.wasm rename to tests/emscripten_resources/emtests/test_i64_cmp2.wasm diff --git a/lib/emscripten-tests/emtests/test_i64_double.c b/tests/emscripten_resources/emtests/test_i64_double.c similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_double.c rename to tests/emscripten_resources/emtests/test_i64_double.c diff --git a/lib/emscripten-tests/emtests/test_i64_double.out b/tests/emscripten_resources/emtests/test_i64_double.out similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_double.out rename to tests/emscripten_resources/emtests/test_i64_double.out diff --git a/lib/emscripten-tests/emtests/test_i64_i16.c b/tests/emscripten_resources/emtests/test_i64_i16.c similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_i16.c rename to tests/emscripten_resources/emtests/test_i64_i16.c diff --git a/lib/emscripten-tests/emtests/test_i64_i16.out b/tests/emscripten_resources/emtests/test_i64_i16.out similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_i16.out rename to tests/emscripten_resources/emtests/test_i64_i16.out diff --git a/lib/emscripten-tests/emtests/test_i64_i16.wasm b/tests/emscripten_resources/emtests/test_i64_i16.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_i16.wasm rename to tests/emscripten_resources/emtests/test_i64_i16.wasm diff --git a/lib/emscripten-tests/emtests/test_i64_llabs.c b/tests/emscripten_resources/emtests/test_i64_llabs.c similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_llabs.c rename to tests/emscripten_resources/emtests/test_i64_llabs.c diff --git a/lib/emscripten-tests/emtests/test_i64_llabs.out b/tests/emscripten_resources/emtests/test_i64_llabs.out similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_llabs.out rename to tests/emscripten_resources/emtests/test_i64_llabs.out diff --git a/lib/emscripten-tests/emtests/test_i64_llabs.wasm b/tests/emscripten_resources/emtests/test_i64_llabs.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_llabs.wasm rename to tests/emscripten_resources/emtests/test_i64_llabs.wasm diff --git a/lib/emscripten-tests/emtests/test_i64_precise.c b/tests/emscripten_resources/emtests/test_i64_precise.c similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_precise.c rename to tests/emscripten_resources/emtests/test_i64_precise.c diff --git a/lib/emscripten-tests/emtests/test_i64_precise.out b/tests/emscripten_resources/emtests/test_i64_precise.out similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_precise.out rename to tests/emscripten_resources/emtests/test_i64_precise.out diff --git a/lib/emscripten-tests/emtests/test_i64_precise.wasm b/tests/emscripten_resources/emtests/test_i64_precise.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_precise.wasm rename to tests/emscripten_resources/emtests/test_i64_precise.wasm diff --git a/lib/emscripten-tests/emtests/test_i64_precise_needed.c b/tests/emscripten_resources/emtests/test_i64_precise_needed.c similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_precise_needed.c rename to tests/emscripten_resources/emtests/test_i64_precise_needed.c diff --git a/lib/emscripten-tests/emtests/test_i64_precise_needed.out b/tests/emscripten_resources/emtests/test_i64_precise_needed.out similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_precise_needed.out rename to tests/emscripten_resources/emtests/test_i64_precise_needed.out diff --git a/lib/emscripten-tests/emtests/test_i64_precise_needed.wasm b/tests/emscripten_resources/emtests/test_i64_precise_needed.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_precise_needed.wasm rename to tests/emscripten_resources/emtests/test_i64_precise_needed.wasm diff --git a/lib/emscripten-tests/emtests/test_i64_precise_unneeded.c b/tests/emscripten_resources/emtests/test_i64_precise_unneeded.c similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_precise_unneeded.c rename to tests/emscripten_resources/emtests/test_i64_precise_unneeded.c diff --git a/lib/emscripten-tests/emtests/test_i64_precise_unneeded.out b/tests/emscripten_resources/emtests/test_i64_precise_unneeded.out similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_precise_unneeded.out rename to tests/emscripten_resources/emtests/test_i64_precise_unneeded.out diff --git a/lib/emscripten-tests/emtests/test_i64_precise_unneeded.wasm b/tests/emscripten_resources/emtests/test_i64_precise_unneeded.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_precise_unneeded.wasm rename to tests/emscripten_resources/emtests/test_i64_precise_unneeded.wasm diff --git a/lib/emscripten-tests/emtests/test_i64_qdouble.c b/tests/emscripten_resources/emtests/test_i64_qdouble.c similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_qdouble.c rename to tests/emscripten_resources/emtests/test_i64_qdouble.c diff --git a/lib/emscripten-tests/emtests/test_i64_qdouble.out b/tests/emscripten_resources/emtests/test_i64_qdouble.out similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_qdouble.out rename to tests/emscripten_resources/emtests/test_i64_qdouble.out diff --git a/lib/emscripten-tests/emtests/test_i64_qdouble.wasm b/tests/emscripten_resources/emtests/test_i64_qdouble.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_qdouble.wasm rename to tests/emscripten_resources/emtests/test_i64_qdouble.wasm diff --git a/lib/emscripten-tests/emtests/test_i64_umul.c b/tests/emscripten_resources/emtests/test_i64_umul.c similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_umul.c rename to tests/emscripten_resources/emtests/test_i64_umul.c diff --git a/lib/emscripten-tests/emtests/test_i64_umul.out b/tests/emscripten_resources/emtests/test_i64_umul.out similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_umul.out rename to tests/emscripten_resources/emtests/test_i64_umul.out diff --git a/lib/emscripten-tests/emtests/test_i64_umul.wasm b/tests/emscripten_resources/emtests/test_i64_umul.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_umul.wasm rename to tests/emscripten_resources/emtests/test_i64_umul.wasm diff --git a/lib/emscripten-tests/emtests/test_i64_varargs.c b/tests/emscripten_resources/emtests/test_i64_varargs.c similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_varargs.c rename to tests/emscripten_resources/emtests/test_i64_varargs.c diff --git a/lib/emscripten-tests/emtests/test_i64_varargs.out b/tests/emscripten_resources/emtests/test_i64_varargs.out similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_varargs.out rename to tests/emscripten_resources/emtests/test_i64_varargs.out diff --git a/lib/emscripten-tests/emtests/test_i64_varargs.wasm b/tests/emscripten_resources/emtests/test_i64_varargs.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_varargs.wasm rename to tests/emscripten_resources/emtests/test_i64_varargs.wasm diff --git a/lib/emscripten-tests/emtests/test_i64_zextneg.c b/tests/emscripten_resources/emtests/test_i64_zextneg.c similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_zextneg.c rename to tests/emscripten_resources/emtests/test_i64_zextneg.c diff --git a/lib/emscripten-tests/emtests/test_i64_zextneg.out b/tests/emscripten_resources/emtests/test_i64_zextneg.out similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_zextneg.out rename to tests/emscripten_resources/emtests/test_i64_zextneg.out diff --git a/lib/emscripten-tests/emtests/test_i64_zextneg.wasm b/tests/emscripten_resources/emtests/test_i64_zextneg.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_i64_zextneg.wasm rename to tests/emscripten_resources/emtests/test_i64_zextneg.wasm diff --git a/lib/emscripten-tests/emtests/test_if.c b/tests/emscripten_resources/emtests/test_if.c similarity index 100% rename from lib/emscripten-tests/emtests/test_if.c rename to tests/emscripten_resources/emtests/test_if.c diff --git a/lib/emscripten-tests/emtests/test_if.out b/tests/emscripten_resources/emtests/test_if.out similarity index 100% rename from lib/emscripten-tests/emtests/test_if.out rename to tests/emscripten_resources/emtests/test_if.out diff --git a/lib/emscripten-tests/emtests/test_if.wasm b/tests/emscripten_resources/emtests/test_if.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_if.wasm rename to tests/emscripten_resources/emtests/test_if.wasm diff --git a/lib/emscripten-tests/emtests/test_if_else.c b/tests/emscripten_resources/emtests/test_if_else.c similarity index 100% rename from lib/emscripten-tests/emtests/test_if_else.c rename to tests/emscripten_resources/emtests/test_if_else.c diff --git a/lib/emscripten-tests/emtests/test_if_else.out b/tests/emscripten_resources/emtests/test_if_else.out similarity index 100% rename from lib/emscripten-tests/emtests/test_if_else.out rename to tests/emscripten_resources/emtests/test_if_else.out diff --git a/lib/emscripten-tests/emtests/test_if_else.wasm b/tests/emscripten_resources/emtests/test_if_else.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_if_else.wasm rename to tests/emscripten_resources/emtests/test_if_else.wasm diff --git a/lib/emscripten-tests/emtests/test_indirectbr.c b/tests/emscripten_resources/emtests/test_indirectbr.c similarity index 100% rename from lib/emscripten-tests/emtests/test_indirectbr.c rename to tests/emscripten_resources/emtests/test_indirectbr.c diff --git a/lib/emscripten-tests/emtests/test_indirectbr.out b/tests/emscripten_resources/emtests/test_indirectbr.out similarity index 100% rename from lib/emscripten-tests/emtests/test_indirectbr.out rename to tests/emscripten_resources/emtests/test_indirectbr.out diff --git a/lib/emscripten-tests/emtests/test_indirectbr.wasm b/tests/emscripten_resources/emtests/test_indirectbr.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_indirectbr.wasm rename to tests/emscripten_resources/emtests/test_indirectbr.wasm diff --git a/lib/emscripten-tests/emtests/test_indirectbr_many.c b/tests/emscripten_resources/emtests/test_indirectbr_many.c similarity index 100% rename from lib/emscripten-tests/emtests/test_indirectbr_many.c rename to tests/emscripten_resources/emtests/test_indirectbr_many.c diff --git a/lib/emscripten-tests/emtests/test_indirectbr_many.out b/tests/emscripten_resources/emtests/test_indirectbr_many.out similarity index 100% rename from lib/emscripten-tests/emtests/test_indirectbr_many.out rename to tests/emscripten_resources/emtests/test_indirectbr_many.out diff --git a/lib/emscripten-tests/emtests/test_indirectbr_many.wasm b/tests/emscripten_resources/emtests/test_indirectbr_many.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_indirectbr_many.wasm rename to tests/emscripten_resources/emtests/test_indirectbr_many.wasm diff --git a/lib/emscripten-tests/emtests/test_inherit.c b/tests/emscripten_resources/emtests/test_inherit.c similarity index 100% rename from lib/emscripten-tests/emtests/test_inherit.c rename to tests/emscripten_resources/emtests/test_inherit.c diff --git a/lib/emscripten-tests/emtests/test_inherit.out b/tests/emscripten_resources/emtests/test_inherit.out similarity index 100% rename from lib/emscripten-tests/emtests/test_inherit.out rename to tests/emscripten_resources/emtests/test_inherit.out diff --git a/lib/emscripten-tests/emtests/test_inlinejs.c b/tests/emscripten_resources/emtests/test_inlinejs.c similarity index 100% rename from lib/emscripten-tests/emtests/test_inlinejs.c rename to tests/emscripten_resources/emtests/test_inlinejs.c diff --git a/lib/emscripten-tests/emtests/test_inlinejs.out b/tests/emscripten_resources/emtests/test_inlinejs.out similarity index 100% rename from lib/emscripten-tests/emtests/test_inlinejs.out rename to tests/emscripten_resources/emtests/test_inlinejs.out diff --git a/lib/emscripten-tests/emtests/test_inlinejs2.c b/tests/emscripten_resources/emtests/test_inlinejs2.c similarity index 100% rename from lib/emscripten-tests/emtests/test_inlinejs2.c rename to tests/emscripten_resources/emtests/test_inlinejs2.c diff --git a/lib/emscripten-tests/emtests/test_inlinejs2.out b/tests/emscripten_resources/emtests/test_inlinejs2.out similarity index 100% rename from lib/emscripten-tests/emtests/test_inlinejs2.out rename to tests/emscripten_resources/emtests/test_inlinejs2.out diff --git a/lib/emscripten-tests/emtests/test_inlinejs3.c b/tests/emscripten_resources/emtests/test_inlinejs3.c similarity index 100% rename from lib/emscripten-tests/emtests/test_inlinejs3.c rename to tests/emscripten_resources/emtests/test_inlinejs3.c diff --git a/lib/emscripten-tests/emtests/test_inlinejs3.out b/tests/emscripten_resources/emtests/test_inlinejs3.out similarity index 100% rename from lib/emscripten-tests/emtests/test_inlinejs3.out rename to tests/emscripten_resources/emtests/test_inlinejs3.out diff --git a/lib/emscripten-tests/emtests/test_intentional_fault.c b/tests/emscripten_resources/emtests/test_intentional_fault.c similarity index 100% rename from lib/emscripten-tests/emtests/test_intentional_fault.c rename to tests/emscripten_resources/emtests/test_intentional_fault.c diff --git a/lib/emscripten-tests/emtests/test_intentional_fault.wasm b/tests/emscripten_resources/emtests/test_intentional_fault.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_intentional_fault.wasm rename to tests/emscripten_resources/emtests/test_intentional_fault.wasm diff --git a/lib/emscripten-tests/emtests/test_intvars.c b/tests/emscripten_resources/emtests/test_intvars.c similarity index 100% rename from lib/emscripten-tests/emtests/test_intvars.c rename to tests/emscripten_resources/emtests/test_intvars.c diff --git a/lib/emscripten-tests/emtests/test_intvars.out b/tests/emscripten_resources/emtests/test_intvars.out similarity index 100% rename from lib/emscripten-tests/emtests/test_intvars.out rename to tests/emscripten_resources/emtests/test_intvars.out diff --git a/lib/emscripten-tests/emtests/test_isdigit_l.c b/tests/emscripten_resources/emtests/test_isdigit_l.c similarity index 100% rename from lib/emscripten-tests/emtests/test_isdigit_l.c rename to tests/emscripten_resources/emtests/test_isdigit_l.c diff --git a/lib/emscripten-tests/emtests/test_isdigit_l.out b/tests/emscripten_resources/emtests/test_isdigit_l.out similarity index 100% rename from lib/emscripten-tests/emtests/test_isdigit_l.out rename to tests/emscripten_resources/emtests/test_isdigit_l.out diff --git a/lib/emscripten-tests/emtests/test_isnan.c b/tests/emscripten_resources/emtests/test_isnan.c similarity index 100% rename from lib/emscripten-tests/emtests/test_isnan.c rename to tests/emscripten_resources/emtests/test_isnan.c diff --git a/lib/emscripten-tests/emtests/test_isnan.out b/tests/emscripten_resources/emtests/test_isnan.out similarity index 100% rename from lib/emscripten-tests/emtests/test_isnan.out rename to tests/emscripten_resources/emtests/test_isnan.out diff --git a/lib/emscripten-tests/emtests/test_isnan.wasm b/tests/emscripten_resources/emtests/test_isnan.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_isnan.wasm rename to tests/emscripten_resources/emtests/test_isnan.wasm diff --git a/lib/emscripten-tests/emtests/test_istream.c b/tests/emscripten_resources/emtests/test_istream.c similarity index 100% rename from lib/emscripten-tests/emtests/test_istream.c rename to tests/emscripten_resources/emtests/test_istream.c diff --git a/lib/emscripten-tests/emtests/test_istream.out b/tests/emscripten_resources/emtests/test_istream.out similarity index 100% rename from lib/emscripten-tests/emtests/test_istream.out rename to tests/emscripten_resources/emtests/test_istream.out diff --git a/lib/emscripten-tests/emtests/test_iswdigit.c b/tests/emscripten_resources/emtests/test_iswdigit.c similarity index 100% rename from lib/emscripten-tests/emtests/test_iswdigit.c rename to tests/emscripten_resources/emtests/test_iswdigit.c diff --git a/lib/emscripten-tests/emtests/test_iswdigit.out b/tests/emscripten_resources/emtests/test_iswdigit.out similarity index 100% rename from lib/emscripten-tests/emtests/test_iswdigit.out rename to tests/emscripten_resources/emtests/test_iswdigit.out diff --git a/lib/emscripten-tests/emtests/test_libcextra.c b/tests/emscripten_resources/emtests/test_libcextra.c similarity index 100% rename from lib/emscripten-tests/emtests/test_libcextra.c rename to tests/emscripten_resources/emtests/test_libcextra.c diff --git a/lib/emscripten-tests/emtests/test_libcextra.out b/tests/emscripten_resources/emtests/test_libcextra.out similarity index 100% rename from lib/emscripten-tests/emtests/test_libcextra.out rename to tests/emscripten_resources/emtests/test_libcextra.out diff --git a/lib/emscripten-tests/emtests/test_libcextra.wasm b/tests/emscripten_resources/emtests/test_libcextra.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_libcextra.wasm rename to tests/emscripten_resources/emtests/test_libcextra.wasm diff --git a/lib/emscripten-tests/emtests/test_libgen.c b/tests/emscripten_resources/emtests/test_libgen.c similarity index 100% rename from lib/emscripten-tests/emtests/test_libgen.c rename to tests/emscripten_resources/emtests/test_libgen.c diff --git a/lib/emscripten-tests/emtests/test_libgen.out b/tests/emscripten_resources/emtests/test_libgen.out similarity index 100% rename from lib/emscripten-tests/emtests/test_libgen.out rename to tests/emscripten_resources/emtests/test_libgen.out diff --git a/lib/emscripten-tests/emtests/test_libgen.wasm b/tests/emscripten_resources/emtests/test_libgen.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_libgen.wasm rename to tests/emscripten_resources/emtests/test_libgen.wasm diff --git a/lib/emscripten-tests/emtests/test_linked_list.c b/tests/emscripten_resources/emtests/test_linked_list.c similarity index 100% rename from lib/emscripten-tests/emtests/test_linked_list.c rename to tests/emscripten_resources/emtests/test_linked_list.c diff --git a/lib/emscripten-tests/emtests/test_linked_list.out b/tests/emscripten_resources/emtests/test_linked_list.out similarity index 100% rename from lib/emscripten-tests/emtests/test_linked_list.out rename to tests/emscripten_resources/emtests/test_linked_list.out diff --git a/lib/emscripten-tests/emtests/test_literal_negative_zero.c b/tests/emscripten_resources/emtests/test_literal_negative_zero.c similarity index 100% rename from lib/emscripten-tests/emtests/test_literal_negative_zero.c rename to tests/emscripten_resources/emtests/test_literal_negative_zero.c diff --git a/lib/emscripten-tests/emtests/test_literal_negative_zero.out b/tests/emscripten_resources/emtests/test_literal_negative_zero.out similarity index 100% rename from lib/emscripten-tests/emtests/test_literal_negative_zero.out rename to tests/emscripten_resources/emtests/test_literal_negative_zero.out diff --git a/lib/emscripten-tests/emtests/test_literal_negative_zero.wasm b/tests/emscripten_resources/emtests/test_literal_negative_zero.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_literal_negative_zero.wasm rename to tests/emscripten_resources/emtests/test_literal_negative_zero.wasm diff --git a/lib/emscripten-tests/emtests/test_llrint.c b/tests/emscripten_resources/emtests/test_llrint.c similarity index 100% rename from lib/emscripten-tests/emtests/test_llrint.c rename to tests/emscripten_resources/emtests/test_llrint.c diff --git a/lib/emscripten-tests/emtests/test_llrint.out b/tests/emscripten_resources/emtests/test_llrint.out similarity index 100% rename from lib/emscripten-tests/emtests/test_llrint.out rename to tests/emscripten_resources/emtests/test_llrint.out diff --git a/lib/emscripten-tests/emtests/test_llrint.wasm b/tests/emscripten_resources/emtests/test_llrint.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_llrint.wasm rename to tests/emscripten_resources/emtests/test_llrint.wasm diff --git a/lib/emscripten-tests/emtests/test_llvm_fabs.c b/tests/emscripten_resources/emtests/test_llvm_fabs.c similarity index 100% rename from lib/emscripten-tests/emtests/test_llvm_fabs.c rename to tests/emscripten_resources/emtests/test_llvm_fabs.c diff --git a/lib/emscripten-tests/emtests/test_llvm_fabs.out b/tests/emscripten_resources/emtests/test_llvm_fabs.out similarity index 100% rename from lib/emscripten-tests/emtests/test_llvm_fabs.out rename to tests/emscripten_resources/emtests/test_llvm_fabs.out diff --git a/lib/emscripten-tests/emtests/test_llvm_fabs.wasm b/tests/emscripten_resources/emtests/test_llvm_fabs.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_llvm_fabs.wasm rename to tests/emscripten_resources/emtests/test_llvm_fabs.wasm diff --git a/lib/emscripten-tests/emtests/test_llvm_intrinsics.cpp b/tests/emscripten_resources/emtests/test_llvm_intrinsics.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_llvm_intrinsics.cpp rename to tests/emscripten_resources/emtests/test_llvm_intrinsics.cpp diff --git a/lib/emscripten-tests/emtests/test_llvm_intrinsics.out b/tests/emscripten_resources/emtests/test_llvm_intrinsics.out similarity index 100% rename from lib/emscripten-tests/emtests/test_llvm_intrinsics.out rename to tests/emscripten_resources/emtests/test_llvm_intrinsics.out diff --git a/lib/emscripten-tests/emtests/test_llvm_intrinsics.wasm b/tests/emscripten_resources/emtests/test_llvm_intrinsics.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_llvm_intrinsics.wasm rename to tests/emscripten_resources/emtests/test_llvm_intrinsics.wasm diff --git a/lib/emscripten-tests/emtests/test_llvm_used.c b/tests/emscripten_resources/emtests/test_llvm_used.c similarity index 100% rename from lib/emscripten-tests/emtests/test_llvm_used.c rename to tests/emscripten_resources/emtests/test_llvm_used.c diff --git a/lib/emscripten-tests/emtests/test_llvm_used.out b/tests/emscripten_resources/emtests/test_llvm_used.out similarity index 100% rename from lib/emscripten-tests/emtests/test_llvm_used.out rename to tests/emscripten_resources/emtests/test_llvm_used.out diff --git a/lib/emscripten-tests/emtests/test_llvmswitch.c b/tests/emscripten_resources/emtests/test_llvmswitch.c similarity index 100% rename from lib/emscripten-tests/emtests/test_llvmswitch.c rename to tests/emscripten_resources/emtests/test_llvmswitch.c diff --git a/lib/emscripten-tests/emtests/test_llvmswitch.out b/tests/emscripten_resources/emtests/test_llvmswitch.out similarity index 100% rename from lib/emscripten-tests/emtests/test_llvmswitch.out rename to tests/emscripten_resources/emtests/test_llvmswitch.out diff --git a/lib/emscripten-tests/emtests/test_llvmswitch.wasm b/tests/emscripten_resources/emtests/test_llvmswitch.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_llvmswitch.wasm rename to tests/emscripten_resources/emtests/test_llvmswitch.wasm diff --git a/lib/emscripten-tests/emtests/test_longjmp.c b/tests/emscripten_resources/emtests/test_longjmp.c similarity index 100% rename from lib/emscripten-tests/emtests/test_longjmp.c rename to tests/emscripten_resources/emtests/test_longjmp.c diff --git a/lib/emscripten-tests/emtests/test_longjmp.out b/tests/emscripten_resources/emtests/test_longjmp.out similarity index 100% rename from lib/emscripten-tests/emtests/test_longjmp.out rename to tests/emscripten_resources/emtests/test_longjmp.out diff --git a/lib/emscripten-tests/emtests/test_longjmp.wasm b/tests/emscripten_resources/emtests/test_longjmp.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_longjmp.wasm rename to tests/emscripten_resources/emtests/test_longjmp.wasm diff --git a/lib/emscripten-tests/emtests/test_longjmp2.c b/tests/emscripten_resources/emtests/test_longjmp2.c similarity index 100% rename from lib/emscripten-tests/emtests/test_longjmp2.c rename to tests/emscripten_resources/emtests/test_longjmp2.c diff --git a/lib/emscripten-tests/emtests/test_longjmp2.out b/tests/emscripten_resources/emtests/test_longjmp2.out similarity index 100% rename from lib/emscripten-tests/emtests/test_longjmp2.out rename to tests/emscripten_resources/emtests/test_longjmp2.out diff --git a/lib/emscripten-tests/emtests/test_longjmp2.wasm b/tests/emscripten_resources/emtests/test_longjmp2.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_longjmp2.wasm rename to tests/emscripten_resources/emtests/test_longjmp2.wasm diff --git a/lib/emscripten-tests/emtests/test_longjmp3.c b/tests/emscripten_resources/emtests/test_longjmp3.c similarity index 100% rename from lib/emscripten-tests/emtests/test_longjmp3.c rename to tests/emscripten_resources/emtests/test_longjmp3.c diff --git a/lib/emscripten-tests/emtests/test_longjmp3.out b/tests/emscripten_resources/emtests/test_longjmp3.out similarity index 100% rename from lib/emscripten-tests/emtests/test_longjmp3.out rename to tests/emscripten_resources/emtests/test_longjmp3.out diff --git a/lib/emscripten-tests/emtests/test_longjmp3.wasm b/tests/emscripten_resources/emtests/test_longjmp3.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_longjmp3.wasm rename to tests/emscripten_resources/emtests/test_longjmp3.wasm diff --git a/lib/emscripten-tests/emtests/test_longjmp4.c b/tests/emscripten_resources/emtests/test_longjmp4.c similarity index 100% rename from lib/emscripten-tests/emtests/test_longjmp4.c rename to tests/emscripten_resources/emtests/test_longjmp4.c diff --git a/lib/emscripten-tests/emtests/test_longjmp4.out b/tests/emscripten_resources/emtests/test_longjmp4.out similarity index 100% rename from lib/emscripten-tests/emtests/test_longjmp4.out rename to tests/emscripten_resources/emtests/test_longjmp4.out diff --git a/lib/emscripten-tests/emtests/test_longjmp4.wasm b/tests/emscripten_resources/emtests/test_longjmp4.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_longjmp4.wasm rename to tests/emscripten_resources/emtests/test_longjmp4.wasm diff --git a/lib/emscripten-tests/emtests/test_longjmp_exc.c b/tests/emscripten_resources/emtests/test_longjmp_exc.c similarity index 100% rename from lib/emscripten-tests/emtests/test_longjmp_exc.c rename to tests/emscripten_resources/emtests/test_longjmp_exc.c diff --git a/lib/emscripten-tests/emtests/test_longjmp_exc.out b/tests/emscripten_resources/emtests/test_longjmp_exc.out similarity index 100% rename from lib/emscripten-tests/emtests/test_longjmp_exc.out rename to tests/emscripten_resources/emtests/test_longjmp_exc.out diff --git a/lib/emscripten-tests/emtests/test_longjmp_exc.wasm b/tests/emscripten_resources/emtests/test_longjmp_exc.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_longjmp_exc.wasm rename to tests/emscripten_resources/emtests/test_longjmp_exc.wasm diff --git a/lib/emscripten-tests/emtests/test_longjmp_funcptr.c b/tests/emscripten_resources/emtests/test_longjmp_funcptr.c similarity index 100% rename from lib/emscripten-tests/emtests/test_longjmp_funcptr.c rename to tests/emscripten_resources/emtests/test_longjmp_funcptr.c diff --git a/lib/emscripten-tests/emtests/test_longjmp_funcptr.out b/tests/emscripten_resources/emtests/test_longjmp_funcptr.out similarity index 100% rename from lib/emscripten-tests/emtests/test_longjmp_funcptr.out rename to tests/emscripten_resources/emtests/test_longjmp_funcptr.out diff --git a/lib/emscripten-tests/emtests/test_longjmp_funcptr.wasm b/tests/emscripten_resources/emtests/test_longjmp_funcptr.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_longjmp_funcptr.wasm rename to tests/emscripten_resources/emtests/test_longjmp_funcptr.wasm diff --git a/lib/emscripten-tests/emtests/test_longjmp_repeat.c b/tests/emscripten_resources/emtests/test_longjmp_repeat.c similarity index 100% rename from lib/emscripten-tests/emtests/test_longjmp_repeat.c rename to tests/emscripten_resources/emtests/test_longjmp_repeat.c diff --git a/lib/emscripten-tests/emtests/test_longjmp_repeat.out b/tests/emscripten_resources/emtests/test_longjmp_repeat.out similarity index 100% rename from lib/emscripten-tests/emtests/test_longjmp_repeat.out rename to tests/emscripten_resources/emtests/test_longjmp_repeat.out diff --git a/lib/emscripten-tests/emtests/test_longjmp_repeat.wasm b/tests/emscripten_resources/emtests/test_longjmp_repeat.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_longjmp_repeat.wasm rename to tests/emscripten_resources/emtests/test_longjmp_repeat.wasm diff --git a/lib/emscripten-tests/emtests/test_longjmp_stacked.c b/tests/emscripten_resources/emtests/test_longjmp_stacked.c similarity index 100% rename from lib/emscripten-tests/emtests/test_longjmp_stacked.c rename to tests/emscripten_resources/emtests/test_longjmp_stacked.c diff --git a/lib/emscripten-tests/emtests/test_longjmp_stacked.out b/tests/emscripten_resources/emtests/test_longjmp_stacked.out similarity index 100% rename from lib/emscripten-tests/emtests/test_longjmp_stacked.out rename to tests/emscripten_resources/emtests/test_longjmp_stacked.out diff --git a/lib/emscripten-tests/emtests/test_longjmp_stacked.wasm b/tests/emscripten_resources/emtests/test_longjmp_stacked.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_longjmp_stacked.wasm rename to tests/emscripten_resources/emtests/test_longjmp_stacked.wasm diff --git a/lib/emscripten-tests/emtests/test_longjmp_throw.cpp b/tests/emscripten_resources/emtests/test_longjmp_throw.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_longjmp_throw.cpp rename to tests/emscripten_resources/emtests/test_longjmp_throw.cpp diff --git a/lib/emscripten-tests/emtests/test_longjmp_throw.out b/tests/emscripten_resources/emtests/test_longjmp_throw.out similarity index 100% rename from lib/emscripten-tests/emtests/test_longjmp_throw.out rename to tests/emscripten_resources/emtests/test_longjmp_throw.out diff --git a/lib/emscripten-tests/emtests/test_longjmp_throw.wasm b/tests/emscripten_resources/emtests/test_longjmp_throw.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_longjmp_throw.wasm rename to tests/emscripten_resources/emtests/test_longjmp_throw.wasm diff --git a/lib/emscripten-tests/emtests/test_longjmp_unwind.c b/tests/emscripten_resources/emtests/test_longjmp_unwind.c similarity index 100% rename from lib/emscripten-tests/emtests/test_longjmp_unwind.c rename to tests/emscripten_resources/emtests/test_longjmp_unwind.c diff --git a/lib/emscripten-tests/emtests/test_longjmp_unwind.out b/tests/emscripten_resources/emtests/test_longjmp_unwind.out similarity index 100% rename from lib/emscripten-tests/emtests/test_longjmp_unwind.out rename to tests/emscripten_resources/emtests/test_longjmp_unwind.out diff --git a/lib/emscripten-tests/emtests/test_longjmp_unwind.wasm b/tests/emscripten_resources/emtests/test_longjmp_unwind.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_longjmp_unwind.wasm rename to tests/emscripten_resources/emtests/test_longjmp_unwind.wasm diff --git a/lib/emscripten-tests/emtests/test_loop.c b/tests/emscripten_resources/emtests/test_loop.c similarity index 100% rename from lib/emscripten-tests/emtests/test_loop.c rename to tests/emscripten_resources/emtests/test_loop.c diff --git a/lib/emscripten-tests/emtests/test_loop.out b/tests/emscripten_resources/emtests/test_loop.out similarity index 100% rename from lib/emscripten-tests/emtests/test_loop.out rename to tests/emscripten_resources/emtests/test_loop.out diff --git a/lib/emscripten-tests/emtests/test_loop.wasm b/tests/emscripten_resources/emtests/test_loop.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_loop.wasm rename to tests/emscripten_resources/emtests/test_loop.wasm diff --git a/lib/emscripten-tests/emtests/test_lower_intrinsics.c b/tests/emscripten_resources/emtests/test_lower_intrinsics.c similarity index 100% rename from lib/emscripten-tests/emtests/test_lower_intrinsics.c rename to tests/emscripten_resources/emtests/test_lower_intrinsics.c diff --git a/lib/emscripten-tests/emtests/test_lower_intrinsics.out b/tests/emscripten_resources/emtests/test_lower_intrinsics.out similarity index 100% rename from lib/emscripten-tests/emtests/test_lower_intrinsics.out rename to tests/emscripten_resources/emtests/test_lower_intrinsics.out diff --git a/lib/emscripten-tests/emtests/test_lower_intrinsics.wasm b/tests/emscripten_resources/emtests/test_lower_intrinsics.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_lower_intrinsics.wasm rename to tests/emscripten_resources/emtests/test_lower_intrinsics.wasm diff --git a/lib/emscripten-tests/emtests/test_main_module_static_align.cpp b/tests/emscripten_resources/emtests/test_main_module_static_align.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_main_module_static_align.cpp rename to tests/emscripten_resources/emtests/test_main_module_static_align.cpp diff --git a/lib/emscripten-tests/emtests/test_main_module_static_align.txt b/tests/emscripten_resources/emtests/test_main_module_static_align.txt similarity index 100% rename from lib/emscripten-tests/emtests/test_main_module_static_align.txt rename to tests/emscripten_resources/emtests/test_main_module_static_align.txt diff --git a/lib/emscripten-tests/emtests/test_main_module_static_align.wasm b/tests/emscripten_resources/emtests/test_main_module_static_align.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_main_module_static_align.wasm rename to tests/emscripten_resources/emtests/test_main_module_static_align.wasm diff --git a/lib/emscripten-tests/emtests/test_main_thread_async_em_asm.cpp b/tests/emscripten_resources/emtests/test_main_thread_async_em_asm.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_main_thread_async_em_asm.cpp rename to tests/emscripten_resources/emtests/test_main_thread_async_em_asm.cpp diff --git a/lib/emscripten-tests/emtests/test_main_thread_async_em_asm.out b/tests/emscripten_resources/emtests/test_main_thread_async_em_asm.out similarity index 100% rename from lib/emscripten-tests/emtests/test_main_thread_async_em_asm.out rename to tests/emscripten_resources/emtests/test_main_thread_async_em_asm.out diff --git a/lib/emscripten-tests/emtests/test_main_thread_async_em_asm.wasm b/tests/emscripten_resources/emtests/test_main_thread_async_em_asm.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_main_thread_async_em_asm.wasm rename to tests/emscripten_resources/emtests/test_main_thread_async_em_asm.wasm diff --git a/lib/emscripten-tests/emtests/test_mainenv.c b/tests/emscripten_resources/emtests/test_mainenv.c similarity index 100% rename from lib/emscripten-tests/emtests/test_mainenv.c rename to tests/emscripten_resources/emtests/test_mainenv.c diff --git a/lib/emscripten-tests/emtests/test_mainenv.out b/tests/emscripten_resources/emtests/test_mainenv.out similarity index 100% rename from lib/emscripten-tests/emtests/test_mainenv.out rename to tests/emscripten_resources/emtests/test_mainenv.out diff --git a/lib/emscripten-tests/emtests/test_mainenv.wasm b/tests/emscripten_resources/emtests/test_mainenv.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_mainenv.wasm rename to tests/emscripten_resources/emtests/test_mainenv.wasm diff --git a/lib/emscripten-tests/emtests/test_math.c b/tests/emscripten_resources/emtests/test_math.c similarity index 100% rename from lib/emscripten-tests/emtests/test_math.c rename to tests/emscripten_resources/emtests/test_math.c diff --git a/lib/emscripten-tests/emtests/test_math.out b/tests/emscripten_resources/emtests/test_math.out similarity index 100% rename from lib/emscripten-tests/emtests/test_math.out rename to tests/emscripten_resources/emtests/test_math.out diff --git a/lib/emscripten-tests/emtests/test_mathfuncptr.c b/tests/emscripten_resources/emtests/test_mathfuncptr.c similarity index 100% rename from lib/emscripten-tests/emtests/test_mathfuncptr.c rename to tests/emscripten_resources/emtests/test_mathfuncptr.c diff --git a/lib/emscripten-tests/emtests/test_mathfuncptr.out b/tests/emscripten_resources/emtests/test_mathfuncptr.out similarity index 100% rename from lib/emscripten-tests/emtests/test_mathfuncptr.out rename to tests/emscripten_resources/emtests/test_mathfuncptr.out diff --git a/lib/emscripten-tests/emtests/test_mathfuncptr.wasm b/tests/emscripten_resources/emtests/test_mathfuncptr.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_mathfuncptr.wasm rename to tests/emscripten_resources/emtests/test_mathfuncptr.wasm diff --git a/lib/emscripten-tests/emtests/test_memcpy2.c b/tests/emscripten_resources/emtests/test_memcpy2.c similarity index 100% rename from lib/emscripten-tests/emtests/test_memcpy2.c rename to tests/emscripten_resources/emtests/test_memcpy2.c diff --git a/lib/emscripten-tests/emtests/test_memcpy2.out b/tests/emscripten_resources/emtests/test_memcpy2.out similarity index 100% rename from lib/emscripten-tests/emtests/test_memcpy2.out rename to tests/emscripten_resources/emtests/test_memcpy2.out diff --git a/lib/emscripten-tests/emtests/test_memcpy2.wasm b/tests/emscripten_resources/emtests/test_memcpy2.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_memcpy2.wasm rename to tests/emscripten_resources/emtests/test_memcpy2.wasm diff --git a/lib/emscripten-tests/emtests/test_memcpy3.c b/tests/emscripten_resources/emtests/test_memcpy3.c similarity index 100% rename from lib/emscripten-tests/emtests/test_memcpy3.c rename to tests/emscripten_resources/emtests/test_memcpy3.c diff --git a/lib/emscripten-tests/emtests/test_memcpy3.out b/tests/emscripten_resources/emtests/test_memcpy3.out similarity index 100% rename from lib/emscripten-tests/emtests/test_memcpy3.out rename to tests/emscripten_resources/emtests/test_memcpy3.out diff --git a/lib/emscripten-tests/emtests/test_memcpy3.wasm b/tests/emscripten_resources/emtests/test_memcpy3.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_memcpy3.wasm rename to tests/emscripten_resources/emtests/test_memcpy3.wasm diff --git a/lib/emscripten-tests/emtests/test_memcpy_memcmp.c b/tests/emscripten_resources/emtests/test_memcpy_memcmp.c similarity index 100% rename from lib/emscripten-tests/emtests/test_memcpy_memcmp.c rename to tests/emscripten_resources/emtests/test_memcpy_memcmp.c diff --git a/lib/emscripten-tests/emtests/test_memcpy_memcmp.out b/tests/emscripten_resources/emtests/test_memcpy_memcmp.out similarity index 100% rename from lib/emscripten-tests/emtests/test_memcpy_memcmp.out rename to tests/emscripten_resources/emtests/test_memcpy_memcmp.out diff --git a/lib/emscripten-tests/emtests/test_memcpy_memcmp.wasm b/tests/emscripten_resources/emtests/test_memcpy_memcmp.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_memcpy_memcmp.wasm rename to tests/emscripten_resources/emtests/test_memcpy_memcmp.wasm diff --git a/lib/emscripten-tests/emtests/test_memmove.c b/tests/emscripten_resources/emtests/test_memmove.c similarity index 100% rename from lib/emscripten-tests/emtests/test_memmove.c rename to tests/emscripten_resources/emtests/test_memmove.c diff --git a/lib/emscripten-tests/emtests/test_memmove.out b/tests/emscripten_resources/emtests/test_memmove.out similarity index 100% rename from lib/emscripten-tests/emtests/test_memmove.out rename to tests/emscripten_resources/emtests/test_memmove.out diff --git a/lib/emscripten-tests/emtests/test_memmove.wasm b/tests/emscripten_resources/emtests/test_memmove.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_memmove.wasm rename to tests/emscripten_resources/emtests/test_memmove.wasm diff --git a/lib/emscripten-tests/emtests/test_memmove2.c b/tests/emscripten_resources/emtests/test_memmove2.c similarity index 100% rename from lib/emscripten-tests/emtests/test_memmove2.c rename to tests/emscripten_resources/emtests/test_memmove2.c diff --git a/lib/emscripten-tests/emtests/test_memmove2.out b/tests/emscripten_resources/emtests/test_memmove2.out similarity index 100% rename from lib/emscripten-tests/emtests/test_memmove2.out rename to tests/emscripten_resources/emtests/test_memmove2.out diff --git a/lib/emscripten-tests/emtests/test_memmove2.wasm b/tests/emscripten_resources/emtests/test_memmove2.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_memmove2.wasm rename to tests/emscripten_resources/emtests/test_memmove2.wasm diff --git a/lib/emscripten-tests/emtests/test_memmove3.c b/tests/emscripten_resources/emtests/test_memmove3.c similarity index 100% rename from lib/emscripten-tests/emtests/test_memmove3.c rename to tests/emscripten_resources/emtests/test_memmove3.c diff --git a/lib/emscripten-tests/emtests/test_memmove3.out b/tests/emscripten_resources/emtests/test_memmove3.out similarity index 100% rename from lib/emscripten-tests/emtests/test_memmove3.out rename to tests/emscripten_resources/emtests/test_memmove3.out diff --git a/lib/emscripten-tests/emtests/test_memmove3.wasm b/tests/emscripten_resources/emtests/test_memmove3.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_memmove3.wasm rename to tests/emscripten_resources/emtests/test_memmove3.wasm diff --git a/lib/emscripten-tests/emtests/test_memorygrowth.c b/tests/emscripten_resources/emtests/test_memorygrowth.c similarity index 100% rename from lib/emscripten-tests/emtests/test_memorygrowth.c rename to tests/emscripten_resources/emtests/test_memorygrowth.c diff --git a/lib/emscripten-tests/emtests/test_memorygrowth.wasm b/tests/emscripten_resources/emtests/test_memorygrowth.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_memorygrowth.wasm rename to tests/emscripten_resources/emtests/test_memorygrowth.wasm diff --git a/lib/emscripten-tests/emtests/test_memorygrowth_2.c b/tests/emscripten_resources/emtests/test_memorygrowth_2.c similarity index 100% rename from lib/emscripten-tests/emtests/test_memorygrowth_2.c rename to tests/emscripten_resources/emtests/test_memorygrowth_2.c diff --git a/lib/emscripten-tests/emtests/test_memorygrowth_2.wasm b/tests/emscripten_resources/emtests/test_memorygrowth_2.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_memorygrowth_2.wasm rename to tests/emscripten_resources/emtests/test_memorygrowth_2.wasm diff --git a/lib/emscripten-tests/emtests/test_memorygrowth_3.c b/tests/emscripten_resources/emtests/test_memorygrowth_3.c similarity index 100% rename from lib/emscripten-tests/emtests/test_memorygrowth_3.c rename to tests/emscripten_resources/emtests/test_memorygrowth_3.c diff --git a/lib/emscripten-tests/emtests/test_memorygrowth_3.txt b/tests/emscripten_resources/emtests/test_memorygrowth_3.txt similarity index 100% rename from lib/emscripten-tests/emtests/test_memorygrowth_3.txt rename to tests/emscripten_resources/emtests/test_memorygrowth_3.txt diff --git a/lib/emscripten-tests/emtests/test_memorygrowth_3.wasm b/tests/emscripten_resources/emtests/test_memorygrowth_3.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_memorygrowth_3.wasm rename to tests/emscripten_resources/emtests/test_memorygrowth_3.wasm diff --git a/lib/emscripten-tests/emtests/test_memorygrowth_wasm_mem_max.c b/tests/emscripten_resources/emtests/test_memorygrowth_wasm_mem_max.c similarity index 100% rename from lib/emscripten-tests/emtests/test_memorygrowth_wasm_mem_max.c rename to tests/emscripten_resources/emtests/test_memorygrowth_wasm_mem_max.c diff --git a/lib/emscripten-tests/emtests/test_memorygrowth_wasm_mem_max.txt b/tests/emscripten_resources/emtests/test_memorygrowth_wasm_mem_max.txt similarity index 100% rename from lib/emscripten-tests/emtests/test_memorygrowth_wasm_mem_max.txt rename to tests/emscripten_resources/emtests/test_memorygrowth_wasm_mem_max.txt diff --git a/lib/emscripten-tests/emtests/test_memorygrowth_wasm_mem_max.wasm b/tests/emscripten_resources/emtests/test_memorygrowth_wasm_mem_max.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_memorygrowth_wasm_mem_max.wasm rename to tests/emscripten_resources/emtests/test_memorygrowth_wasm_mem_max.wasm diff --git a/lib/emscripten-tests/emtests/test_memset.c b/tests/emscripten_resources/emtests/test_memset.c similarity index 100% rename from lib/emscripten-tests/emtests/test_memset.c rename to tests/emscripten_resources/emtests/test_memset.c diff --git a/lib/emscripten-tests/emtests/test_memset.out b/tests/emscripten_resources/emtests/test_memset.out similarity index 100% rename from lib/emscripten-tests/emtests/test_memset.out rename to tests/emscripten_resources/emtests/test_memset.out diff --git a/lib/emscripten-tests/emtests/test_memset.wasm b/tests/emscripten_resources/emtests/test_memset.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_memset.wasm rename to tests/emscripten_resources/emtests/test_memset.wasm diff --git a/lib/emscripten-tests/emtests/test_mmap.c b/tests/emscripten_resources/emtests/test_mmap.c similarity index 100% rename from lib/emscripten-tests/emtests/test_mmap.c rename to tests/emscripten_resources/emtests/test_mmap.c diff --git a/lib/emscripten-tests/emtests/test_mmap.out b/tests/emscripten_resources/emtests/test_mmap.out similarity index 100% rename from lib/emscripten-tests/emtests/test_mmap.out rename to tests/emscripten_resources/emtests/test_mmap.out diff --git a/lib/emscripten-tests/emtests/test_mmap.wasm b/tests/emscripten_resources/emtests/test_mmap.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_mmap.wasm rename to tests/emscripten_resources/emtests/test_mmap.wasm diff --git a/lib/emscripten-tests/emtests/test_mod_globalstruct.c b/tests/emscripten_resources/emtests/test_mod_globalstruct.c similarity index 100% rename from lib/emscripten-tests/emtests/test_mod_globalstruct.c rename to tests/emscripten_resources/emtests/test_mod_globalstruct.c diff --git a/lib/emscripten-tests/emtests/test_mod_globalstruct.out b/tests/emscripten_resources/emtests/test_mod_globalstruct.out similarity index 100% rename from lib/emscripten-tests/emtests/test_mod_globalstruct.out rename to tests/emscripten_resources/emtests/test_mod_globalstruct.out diff --git a/lib/emscripten-tests/emtests/test_negative_zero.c b/tests/emscripten_resources/emtests/test_negative_zero.c similarity index 100% rename from lib/emscripten-tests/emtests/test_negative_zero.c rename to tests/emscripten_resources/emtests/test_negative_zero.c diff --git a/lib/emscripten-tests/emtests/test_negative_zero.out b/tests/emscripten_resources/emtests/test_negative_zero.out similarity index 100% rename from lib/emscripten-tests/emtests/test_negative_zero.out rename to tests/emscripten_resources/emtests/test_negative_zero.out diff --git a/lib/emscripten-tests/emtests/test_negative_zero.wasm b/tests/emscripten_resources/emtests/test_negative_zero.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_negative_zero.wasm rename to tests/emscripten_resources/emtests/test_negative_zero.wasm diff --git a/lib/emscripten-tests/emtests/test_nested_struct_varargs.c b/tests/emscripten_resources/emtests/test_nested_struct_varargs.c similarity index 100% rename from lib/emscripten-tests/emtests/test_nested_struct_varargs.c rename to tests/emscripten_resources/emtests/test_nested_struct_varargs.c diff --git a/lib/emscripten-tests/emtests/test_nested_struct_varargs.out b/tests/emscripten_resources/emtests/test_nested_struct_varargs.out similarity index 100% rename from lib/emscripten-tests/emtests/test_nested_struct_varargs.out rename to tests/emscripten_resources/emtests/test_nested_struct_varargs.out diff --git a/lib/emscripten-tests/emtests/test_nested_struct_varargs.wasm b/tests/emscripten_resources/emtests/test_nested_struct_varargs.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_nested_struct_varargs.wasm rename to tests/emscripten_resources/emtests/test_nested_struct_varargs.wasm diff --git a/lib/emscripten-tests/emtests/test_nl_types.c b/tests/emscripten_resources/emtests/test_nl_types.c similarity index 100% rename from lib/emscripten-tests/emtests/test_nl_types.c rename to tests/emscripten_resources/emtests/test_nl_types.c diff --git a/lib/emscripten-tests/emtests/test_nl_types.out b/tests/emscripten_resources/emtests/test_nl_types.out similarity index 100% rename from lib/emscripten-tests/emtests/test_nl_types.out rename to tests/emscripten_resources/emtests/test_nl_types.out diff --git a/lib/emscripten-tests/emtests/test_nl_types.wasm b/tests/emscripten_resources/emtests/test_nl_types.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_nl_types.wasm rename to tests/emscripten_resources/emtests/test_nl_types.wasm diff --git a/lib/emscripten-tests/emtests/test_perrar.c b/tests/emscripten_resources/emtests/test_perrar.c similarity index 100% rename from lib/emscripten-tests/emtests/test_perrar.c rename to tests/emscripten_resources/emtests/test_perrar.c diff --git a/lib/emscripten-tests/emtests/test_perrar.out b/tests/emscripten_resources/emtests/test_perrar.out similarity index 100% rename from lib/emscripten-tests/emtests/test_perrar.out rename to tests/emscripten_resources/emtests/test_perrar.out diff --git a/lib/emscripten-tests/emtests/test_perrar.wasm b/tests/emscripten_resources/emtests/test_perrar.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_perrar.wasm rename to tests/emscripten_resources/emtests/test_perrar.wasm diff --git a/lib/emscripten-tests/emtests/test_phiundef.c b/tests/emscripten_resources/emtests/test_phiundef.c similarity index 100% rename from lib/emscripten-tests/emtests/test_phiundef.c rename to tests/emscripten_resources/emtests/test_phiundef.c diff --git a/lib/emscripten-tests/emtests/test_phiundef.out b/tests/emscripten_resources/emtests/test_phiundef.out similarity index 100% rename from lib/emscripten-tests/emtests/test_phiundef.out rename to tests/emscripten_resources/emtests/test_phiundef.out diff --git a/lib/emscripten-tests/emtests/test_phiundef.wasm b/tests/emscripten_resources/emtests/test_phiundef.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_phiundef.wasm rename to tests/emscripten_resources/emtests/test_phiundef.wasm diff --git a/lib/emscripten-tests/emtests/test_pipe.c b/tests/emscripten_resources/emtests/test_pipe.c similarity index 100% rename from lib/emscripten-tests/emtests/test_pipe.c rename to tests/emscripten_resources/emtests/test_pipe.c diff --git a/lib/emscripten-tests/emtests/test_pipe.out b/tests/emscripten_resources/emtests/test_pipe.out similarity index 100% rename from lib/emscripten-tests/emtests/test_pipe.out rename to tests/emscripten_resources/emtests/test_pipe.out diff --git a/lib/emscripten-tests/emtests/test_pipe.wasm b/tests/emscripten_resources/emtests/test_pipe.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_pipe.wasm rename to tests/emscripten_resources/emtests/test_pipe.wasm diff --git a/lib/emscripten-tests/emtests/test_poll.c b/tests/emscripten_resources/emtests/test_poll.c similarity index 100% rename from lib/emscripten-tests/emtests/test_poll.c rename to tests/emscripten_resources/emtests/test_poll.c diff --git a/lib/emscripten-tests/emtests/test_poll.out b/tests/emscripten_resources/emtests/test_poll.out similarity index 100% rename from lib/emscripten-tests/emtests/test_poll.out rename to tests/emscripten_resources/emtests/test_poll.out diff --git a/lib/emscripten-tests/emtests/test_poll.wasm b/tests/emscripten_resources/emtests/test_poll.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_poll.wasm rename to tests/emscripten_resources/emtests/test_poll.wasm diff --git a/lib/emscripten-tests/emtests/test_polymorph.c b/tests/emscripten_resources/emtests/test_polymorph.c similarity index 100% rename from lib/emscripten-tests/emtests/test_polymorph.c rename to tests/emscripten_resources/emtests/test_polymorph.c diff --git a/lib/emscripten-tests/emtests/test_polymorph.out b/tests/emscripten_resources/emtests/test_polymorph.out similarity index 100% rename from lib/emscripten-tests/emtests/test_polymorph.out rename to tests/emscripten_resources/emtests/test_polymorph.out diff --git a/lib/emscripten-tests/emtests/test_posixtime.c b/tests/emscripten_resources/emtests/test_posixtime.c similarity index 100% rename from lib/emscripten-tests/emtests/test_posixtime.c rename to tests/emscripten_resources/emtests/test_posixtime.c diff --git a/lib/emscripten-tests/emtests/test_posixtime.out b/tests/emscripten_resources/emtests/test_posixtime.out similarity index 100% rename from lib/emscripten-tests/emtests/test_posixtime.out rename to tests/emscripten_resources/emtests/test_posixtime.out diff --git a/lib/emscripten-tests/emtests/test_posixtime.wasm b/tests/emscripten_resources/emtests/test_posixtime.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_posixtime.wasm rename to tests/emscripten_resources/emtests/test_posixtime.wasm diff --git a/lib/emscripten-tests/emtests/test_posixtime_no_monotonic.out b/tests/emscripten_resources/emtests/test_posixtime_no_monotonic.out similarity index 100% rename from lib/emscripten-tests/emtests/test_posixtime_no_monotonic.out rename to tests/emscripten_resources/emtests/test_posixtime_no_monotonic.out diff --git a/lib/emscripten-tests/emtests/test_printf_2.c b/tests/emscripten_resources/emtests/test_printf_2.c similarity index 100% rename from lib/emscripten-tests/emtests/test_printf_2.c rename to tests/emscripten_resources/emtests/test_printf_2.c diff --git a/lib/emscripten-tests/emtests/test_printf_2.out b/tests/emscripten_resources/emtests/test_printf_2.out similarity index 100% rename from lib/emscripten-tests/emtests/test_printf_2.out rename to tests/emscripten_resources/emtests/test_printf_2.out diff --git a/lib/emscripten-tests/emtests/test_printf_2.wasm b/tests/emscripten_resources/emtests/test_printf_2.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_printf_2.wasm rename to tests/emscripten_resources/emtests/test_printf_2.wasm diff --git a/lib/emscripten-tests/emtests/test_printf_more.c b/tests/emscripten_resources/emtests/test_printf_more.c similarity index 100% rename from lib/emscripten-tests/emtests/test_printf_more.c rename to tests/emscripten_resources/emtests/test_printf_more.c diff --git a/lib/emscripten-tests/emtests/test_printf_more.out b/tests/emscripten_resources/emtests/test_printf_more.out similarity index 100% rename from lib/emscripten-tests/emtests/test_printf_more.out rename to tests/emscripten_resources/emtests/test_printf_more.out diff --git a/lib/emscripten-tests/emtests/test_printf_more.wasm b/tests/emscripten_resources/emtests/test_printf_more.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_printf_more.wasm rename to tests/emscripten_resources/emtests/test_printf_more.wasm diff --git a/lib/emscripten-tests/emtests/test_ptrtoint.out b/tests/emscripten_resources/emtests/test_ptrtoint.out similarity index 100% rename from lib/emscripten-tests/emtests/test_ptrtoint.out rename to tests/emscripten_resources/emtests/test_ptrtoint.out diff --git a/lib/emscripten-tests/emtests/test_random_device.cpp b/tests/emscripten_resources/emtests/test_random_device.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_random_device.cpp rename to tests/emscripten_resources/emtests/test_random_device.cpp diff --git a/lib/emscripten-tests/emtests/test_random_device.txt b/tests/emscripten_resources/emtests/test_random_device.txt similarity index 100% rename from lib/emscripten-tests/emtests/test_random_device.txt rename to tests/emscripten_resources/emtests/test_random_device.txt diff --git a/lib/emscripten-tests/emtests/test_regex.c b/tests/emscripten_resources/emtests/test_regex.c similarity index 100% rename from lib/emscripten-tests/emtests/test_regex.c rename to tests/emscripten_resources/emtests/test_regex.c diff --git a/lib/emscripten-tests/emtests/test_regex.out b/tests/emscripten_resources/emtests/test_regex.out similarity index 100% rename from lib/emscripten-tests/emtests/test_regex.out rename to tests/emscripten_resources/emtests/test_regex.out diff --git a/lib/emscripten-tests/emtests/test_regex.wasm b/tests/emscripten_resources/emtests/test_regex.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_regex.wasm rename to tests/emscripten_resources/emtests/test_regex.wasm diff --git a/lib/emscripten-tests/emtests/test_reinterpreted_ptrs.c b/tests/emscripten_resources/emtests/test_reinterpreted_ptrs.c similarity index 100% rename from lib/emscripten-tests/emtests/test_reinterpreted_ptrs.c rename to tests/emscripten_resources/emtests/test_reinterpreted_ptrs.c diff --git a/lib/emscripten-tests/emtests/test_reinterpreted_ptrs.out b/tests/emscripten_resources/emtests/test_reinterpreted_ptrs.out similarity index 100% rename from lib/emscripten-tests/emtests/test_reinterpreted_ptrs.out rename to tests/emscripten_resources/emtests/test_reinterpreted_ptrs.out diff --git a/lib/emscripten-tests/emtests/test_relocatable_void_function.c b/tests/emscripten_resources/emtests/test_relocatable_void_function.c similarity index 100% rename from lib/emscripten-tests/emtests/test_relocatable_void_function.c rename to tests/emscripten_resources/emtests/test_relocatable_void_function.c diff --git a/lib/emscripten-tests/emtests/test_relocatable_void_function.out b/tests/emscripten_resources/emtests/test_relocatable_void_function.out similarity index 100% rename from lib/emscripten-tests/emtests/test_relocatable_void_function.out rename to tests/emscripten_resources/emtests/test_relocatable_void_function.out diff --git a/lib/emscripten-tests/emtests/test_relocatable_void_function.wasm b/tests/emscripten_resources/emtests/test_relocatable_void_function.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_relocatable_void_function.wasm rename to tests/emscripten_resources/emtests/test_relocatable_void_function.wasm diff --git a/lib/emscripten-tests/emtests/test_rounding.c b/tests/emscripten_resources/emtests/test_rounding.c similarity index 100% rename from lib/emscripten-tests/emtests/test_rounding.c rename to tests/emscripten_resources/emtests/test_rounding.c diff --git a/lib/emscripten-tests/emtests/test_rounding.out b/tests/emscripten_resources/emtests/test_rounding.out similarity index 100% rename from lib/emscripten-tests/emtests/test_rounding.out rename to tests/emscripten_resources/emtests/test_rounding.out diff --git a/lib/emscripten-tests/emtests/test_rounding.wasm b/tests/emscripten_resources/emtests/test_rounding.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_rounding.wasm rename to tests/emscripten_resources/emtests/test_rounding.wasm diff --git a/lib/emscripten-tests/emtests/test_runtime_stacksave.c b/tests/emscripten_resources/emtests/test_runtime_stacksave.c similarity index 100% rename from lib/emscripten-tests/emtests/test_runtime_stacksave.c rename to tests/emscripten_resources/emtests/test_runtime_stacksave.c diff --git a/lib/emscripten-tests/emtests/test_runtime_stacksave.wasm b/tests/emscripten_resources/emtests/test_runtime_stacksave.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_runtime_stacksave.wasm rename to tests/emscripten_resources/emtests/test_runtime_stacksave.wasm diff --git a/lib/emscripten-tests/emtests/test_set_align.c b/tests/emscripten_resources/emtests/test_set_align.c similarity index 100% rename from lib/emscripten-tests/emtests/test_set_align.c rename to tests/emscripten_resources/emtests/test_set_align.c diff --git a/lib/emscripten-tests/emtests/test_set_align.out b/tests/emscripten_resources/emtests/test_set_align.out similarity index 100% rename from lib/emscripten-tests/emtests/test_set_align.out rename to tests/emscripten_resources/emtests/test_set_align.out diff --git a/lib/emscripten-tests/emtests/test_set_align.wasm b/tests/emscripten_resources/emtests/test_set_align.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_set_align.wasm rename to tests/emscripten_resources/emtests/test_set_align.wasm diff --git a/lib/emscripten-tests/emtests/test_siglongjmp.c b/tests/emscripten_resources/emtests/test_siglongjmp.c similarity index 100% rename from lib/emscripten-tests/emtests/test_siglongjmp.c rename to tests/emscripten_resources/emtests/test_siglongjmp.c diff --git a/lib/emscripten-tests/emtests/test_siglongjmp.out b/tests/emscripten_resources/emtests/test_siglongjmp.out similarity index 100% rename from lib/emscripten-tests/emtests/test_siglongjmp.out rename to tests/emscripten_resources/emtests/test_siglongjmp.out diff --git a/lib/emscripten-tests/emtests/test_siglongjmp.wasm b/tests/emscripten_resources/emtests/test_siglongjmp.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_siglongjmp.wasm rename to tests/emscripten_resources/emtests/test_siglongjmp.wasm diff --git a/lib/emscripten-tests/emtests/test_simd.c b/tests/emscripten_resources/emtests/test_simd.c similarity index 100% rename from lib/emscripten-tests/emtests/test_simd.c rename to tests/emscripten_resources/emtests/test_simd.c diff --git a/lib/emscripten-tests/emtests/test_simd.out b/tests/emscripten_resources/emtests/test_simd.out similarity index 100% rename from lib/emscripten-tests/emtests/test_simd.out rename to tests/emscripten_resources/emtests/test_simd.out diff --git a/lib/emscripten-tests/emtests/test_simd10.c b/tests/emscripten_resources/emtests/test_simd10.c similarity index 100% rename from lib/emscripten-tests/emtests/test_simd10.c rename to tests/emscripten_resources/emtests/test_simd10.c diff --git a/lib/emscripten-tests/emtests/test_simd10.out b/tests/emscripten_resources/emtests/test_simd10.out similarity index 100% rename from lib/emscripten-tests/emtests/test_simd10.out rename to tests/emscripten_resources/emtests/test_simd10.out diff --git a/lib/emscripten-tests/emtests/test_simd11.c b/tests/emscripten_resources/emtests/test_simd11.c similarity index 100% rename from lib/emscripten-tests/emtests/test_simd11.c rename to tests/emscripten_resources/emtests/test_simd11.c diff --git a/lib/emscripten-tests/emtests/test_simd11.out b/tests/emscripten_resources/emtests/test_simd11.out similarity index 100% rename from lib/emscripten-tests/emtests/test_simd11.out rename to tests/emscripten_resources/emtests/test_simd11.out diff --git a/lib/emscripten-tests/emtests/test_simd12.c b/tests/emscripten_resources/emtests/test_simd12.c similarity index 100% rename from lib/emscripten-tests/emtests/test_simd12.c rename to tests/emscripten_resources/emtests/test_simd12.c diff --git a/lib/emscripten-tests/emtests/test_simd12.out b/tests/emscripten_resources/emtests/test_simd12.out similarity index 100% rename from lib/emscripten-tests/emtests/test_simd12.out rename to tests/emscripten_resources/emtests/test_simd12.out diff --git a/lib/emscripten-tests/emtests/test_simd13.c b/tests/emscripten_resources/emtests/test_simd13.c similarity index 100% rename from lib/emscripten-tests/emtests/test_simd13.c rename to tests/emscripten_resources/emtests/test_simd13.c diff --git a/lib/emscripten-tests/emtests/test_simd13.out b/tests/emscripten_resources/emtests/test_simd13.out similarity index 100% rename from lib/emscripten-tests/emtests/test_simd13.out rename to tests/emscripten_resources/emtests/test_simd13.out diff --git a/lib/emscripten-tests/emtests/test_simd14.c b/tests/emscripten_resources/emtests/test_simd14.c similarity index 100% rename from lib/emscripten-tests/emtests/test_simd14.c rename to tests/emscripten_resources/emtests/test_simd14.c diff --git a/lib/emscripten-tests/emtests/test_simd14.out b/tests/emscripten_resources/emtests/test_simd14.out similarity index 100% rename from lib/emscripten-tests/emtests/test_simd14.out rename to tests/emscripten_resources/emtests/test_simd14.out diff --git a/lib/emscripten-tests/emtests/test_simd15.c b/tests/emscripten_resources/emtests/test_simd15.c similarity index 100% rename from lib/emscripten-tests/emtests/test_simd15.c rename to tests/emscripten_resources/emtests/test_simd15.c diff --git a/lib/emscripten-tests/emtests/test_simd15.out b/tests/emscripten_resources/emtests/test_simd15.out similarity index 100% rename from lib/emscripten-tests/emtests/test_simd15.out rename to tests/emscripten_resources/emtests/test_simd15.out diff --git a/lib/emscripten-tests/emtests/test_simd16.c b/tests/emscripten_resources/emtests/test_simd16.c similarity index 100% rename from lib/emscripten-tests/emtests/test_simd16.c rename to tests/emscripten_resources/emtests/test_simd16.c diff --git a/lib/emscripten-tests/emtests/test_simd16.out b/tests/emscripten_resources/emtests/test_simd16.out similarity index 100% rename from lib/emscripten-tests/emtests/test_simd16.out rename to tests/emscripten_resources/emtests/test_simd16.out diff --git a/lib/emscripten-tests/emtests/test_simd2.c b/tests/emscripten_resources/emtests/test_simd2.c similarity index 100% rename from lib/emscripten-tests/emtests/test_simd2.c rename to tests/emscripten_resources/emtests/test_simd2.c diff --git a/lib/emscripten-tests/emtests/test_simd2.out b/tests/emscripten_resources/emtests/test_simd2.out similarity index 100% rename from lib/emscripten-tests/emtests/test_simd2.out rename to tests/emscripten_resources/emtests/test_simd2.out diff --git a/lib/emscripten-tests/emtests/test_simd3.c b/tests/emscripten_resources/emtests/test_simd3.c similarity index 100% rename from lib/emscripten-tests/emtests/test_simd3.c rename to tests/emscripten_resources/emtests/test_simd3.c diff --git a/lib/emscripten-tests/emtests/test_simd3.out b/tests/emscripten_resources/emtests/test_simd3.out similarity index 100% rename from lib/emscripten-tests/emtests/test_simd3.out rename to tests/emscripten_resources/emtests/test_simd3.out diff --git a/lib/emscripten-tests/emtests/test_simd4.c b/tests/emscripten_resources/emtests/test_simd4.c similarity index 100% rename from lib/emscripten-tests/emtests/test_simd4.c rename to tests/emscripten_resources/emtests/test_simd4.c diff --git a/lib/emscripten-tests/emtests/test_simd4.out b/tests/emscripten_resources/emtests/test_simd4.out similarity index 100% rename from lib/emscripten-tests/emtests/test_simd4.out rename to tests/emscripten_resources/emtests/test_simd4.out diff --git a/lib/emscripten-tests/emtests/test_simd5.c b/tests/emscripten_resources/emtests/test_simd5.c similarity index 100% rename from lib/emscripten-tests/emtests/test_simd5.c rename to tests/emscripten_resources/emtests/test_simd5.c diff --git a/lib/emscripten-tests/emtests/test_simd5.out b/tests/emscripten_resources/emtests/test_simd5.out similarity index 100% rename from lib/emscripten-tests/emtests/test_simd5.out rename to tests/emscripten_resources/emtests/test_simd5.out diff --git a/lib/emscripten-tests/emtests/test_simd6.c b/tests/emscripten_resources/emtests/test_simd6.c similarity index 100% rename from lib/emscripten-tests/emtests/test_simd6.c rename to tests/emscripten_resources/emtests/test_simd6.c diff --git a/lib/emscripten-tests/emtests/test_simd6.out b/tests/emscripten_resources/emtests/test_simd6.out similarity index 100% rename from lib/emscripten-tests/emtests/test_simd6.out rename to tests/emscripten_resources/emtests/test_simd6.out diff --git a/lib/emscripten-tests/emtests/test_simd7.c b/tests/emscripten_resources/emtests/test_simd7.c similarity index 100% rename from lib/emscripten-tests/emtests/test_simd7.c rename to tests/emscripten_resources/emtests/test_simd7.c diff --git a/lib/emscripten-tests/emtests/test_simd7.out b/tests/emscripten_resources/emtests/test_simd7.out similarity index 100% rename from lib/emscripten-tests/emtests/test_simd7.out rename to tests/emscripten_resources/emtests/test_simd7.out diff --git a/lib/emscripten-tests/emtests/test_simd8.c b/tests/emscripten_resources/emtests/test_simd8.c similarity index 100% rename from lib/emscripten-tests/emtests/test_simd8.c rename to tests/emscripten_resources/emtests/test_simd8.c diff --git a/lib/emscripten-tests/emtests/test_simd8.out b/tests/emscripten_resources/emtests/test_simd8.out similarity index 100% rename from lib/emscripten-tests/emtests/test_simd8.out rename to tests/emscripten_resources/emtests/test_simd8.out diff --git a/lib/emscripten-tests/emtests/test_simd9.c b/tests/emscripten_resources/emtests/test_simd9.c similarity index 100% rename from lib/emscripten-tests/emtests/test_simd9.c rename to tests/emscripten_resources/emtests/test_simd9.c diff --git a/lib/emscripten-tests/emtests/test_simd9.out b/tests/emscripten_resources/emtests/test_simd9.out similarity index 100% rename from lib/emscripten-tests/emtests/test_simd9.out rename to tests/emscripten_resources/emtests/test_simd9.out diff --git a/lib/emscripten-tests/emtests/test_simd_dyncall.cpp b/tests/emscripten_resources/emtests/test_simd_dyncall.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_simd_dyncall.cpp rename to tests/emscripten_resources/emtests/test_simd_dyncall.cpp diff --git a/lib/emscripten-tests/emtests/test_simd_dyncall.txt b/tests/emscripten_resources/emtests/test_simd_dyncall.txt similarity index 100% rename from lib/emscripten-tests/emtests/test_simd_dyncall.txt rename to tests/emscripten_resources/emtests/test_simd_dyncall.txt diff --git a/lib/emscripten-tests/emtests/test_simd_float32x4.c b/tests/emscripten_resources/emtests/test_simd_float32x4.c similarity index 100% rename from lib/emscripten-tests/emtests/test_simd_float32x4.c rename to tests/emscripten_resources/emtests/test_simd_float32x4.c diff --git a/lib/emscripten-tests/emtests/test_simd_float32x4.out b/tests/emscripten_resources/emtests/test_simd_float32x4.out similarity index 100% rename from lib/emscripten-tests/emtests/test_simd_float32x4.out rename to tests/emscripten_resources/emtests/test_simd_float32x4.out diff --git a/lib/emscripten-tests/emtests/test_simd_float64x2.c b/tests/emscripten_resources/emtests/test_simd_float64x2.c similarity index 100% rename from lib/emscripten-tests/emtests/test_simd_float64x2.c rename to tests/emscripten_resources/emtests/test_simd_float64x2.c diff --git a/lib/emscripten-tests/emtests/test_simd_float64x2.out b/tests/emscripten_resources/emtests/test_simd_float64x2.out similarity index 100% rename from lib/emscripten-tests/emtests/test_simd_float64x2.out rename to tests/emscripten_resources/emtests/test_simd_float64x2.out diff --git a/lib/emscripten-tests/emtests/test_simd_int16x8.c b/tests/emscripten_resources/emtests/test_simd_int16x8.c similarity index 100% rename from lib/emscripten-tests/emtests/test_simd_int16x8.c rename to tests/emscripten_resources/emtests/test_simd_int16x8.c diff --git a/lib/emscripten-tests/emtests/test_simd_int16x8.out b/tests/emscripten_resources/emtests/test_simd_int16x8.out similarity index 100% rename from lib/emscripten-tests/emtests/test_simd_int16x8.out rename to tests/emscripten_resources/emtests/test_simd_int16x8.out diff --git a/lib/emscripten-tests/emtests/test_simd_int32x4.c b/tests/emscripten_resources/emtests/test_simd_int32x4.c similarity index 100% rename from lib/emscripten-tests/emtests/test_simd_int32x4.c rename to tests/emscripten_resources/emtests/test_simd_int32x4.c diff --git a/lib/emscripten-tests/emtests/test_simd_int32x4.out b/tests/emscripten_resources/emtests/test_simd_int32x4.out similarity index 100% rename from lib/emscripten-tests/emtests/test_simd_int32x4.out rename to tests/emscripten_resources/emtests/test_simd_int32x4.out diff --git a/lib/emscripten-tests/emtests/test_simd_int8x16.c b/tests/emscripten_resources/emtests/test_simd_int8x16.c similarity index 100% rename from lib/emscripten-tests/emtests/test_simd_int8x16.c rename to tests/emscripten_resources/emtests/test_simd_int8x16.c diff --git a/lib/emscripten-tests/emtests/test_simd_int8x16.out b/tests/emscripten_resources/emtests/test_simd_int8x16.out similarity index 100% rename from lib/emscripten-tests/emtests/test_simd_int8x16.out rename to tests/emscripten_resources/emtests/test_simd_int8x16.out diff --git a/lib/emscripten-tests/emtests/test_simd_set_epi64x.c b/tests/emscripten_resources/emtests/test_simd_set_epi64x.c similarity index 100% rename from lib/emscripten-tests/emtests/test_simd_set_epi64x.c rename to tests/emscripten_resources/emtests/test_simd_set_epi64x.c diff --git a/lib/emscripten-tests/emtests/test_simd_set_epi64x.out b/tests/emscripten_resources/emtests/test_simd_set_epi64x.out similarity index 100% rename from lib/emscripten-tests/emtests/test_simd_set_epi64x.out rename to tests/emscripten_resources/emtests/test_simd_set_epi64x.out diff --git a/lib/emscripten-tests/emtests/test_simd_shift_right.c b/tests/emscripten_resources/emtests/test_simd_shift_right.c similarity index 100% rename from lib/emscripten-tests/emtests/test_simd_shift_right.c rename to tests/emscripten_resources/emtests/test_simd_shift_right.c diff --git a/lib/emscripten-tests/emtests/test_simd_shift_right.out b/tests/emscripten_resources/emtests/test_simd_shift_right.out similarity index 100% rename from lib/emscripten-tests/emtests/test_simd_shift_right.out rename to tests/emscripten_resources/emtests/test_simd_shift_right.out diff --git a/lib/emscripten-tests/emtests/test_simd_sitofp.c b/tests/emscripten_resources/emtests/test_simd_sitofp.c similarity index 100% rename from lib/emscripten-tests/emtests/test_simd_sitofp.c rename to tests/emscripten_resources/emtests/test_simd_sitofp.c diff --git a/lib/emscripten-tests/emtests/test_simd_sitofp.out b/tests/emscripten_resources/emtests/test_simd_sitofp.out similarity index 100% rename from lib/emscripten-tests/emtests/test_simd_sitofp.out rename to tests/emscripten_resources/emtests/test_simd_sitofp.out diff --git a/lib/emscripten-tests/emtests/test_sintvars.c b/tests/emscripten_resources/emtests/test_sintvars.c similarity index 100% rename from lib/emscripten-tests/emtests/test_sintvars.c rename to tests/emscripten_resources/emtests/test_sintvars.c diff --git a/lib/emscripten-tests/emtests/test_sintvars.out b/tests/emscripten_resources/emtests/test_sintvars.out similarity index 100% rename from lib/emscripten-tests/emtests/test_sintvars.out rename to tests/emscripten_resources/emtests/test_sintvars.out diff --git a/lib/emscripten-tests/emtests/test_sintvars.wasm b/tests/emscripten_resources/emtests/test_sintvars.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_sintvars.wasm rename to tests/emscripten_resources/emtests/test_sintvars.wasm diff --git a/lib/emscripten-tests/emtests/test_sizeof.cpp b/tests/emscripten_resources/emtests/test_sizeof.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_sizeof.cpp rename to tests/emscripten_resources/emtests/test_sizeof.cpp diff --git a/lib/emscripten-tests/emtests/test_sizeof.out b/tests/emscripten_resources/emtests/test_sizeof.out similarity index 100% rename from lib/emscripten-tests/emtests/test_sizeof.out rename to tests/emscripten_resources/emtests/test_sizeof.out diff --git a/lib/emscripten-tests/emtests/test_sizeof.wasm b/tests/emscripten_resources/emtests/test_sizeof.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_sizeof.wasm rename to tests/emscripten_resources/emtests/test_sizeof.wasm diff --git a/lib/emscripten-tests/emtests/test_sscanf.c b/tests/emscripten_resources/emtests/test_sscanf.c similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf.c rename to tests/emscripten_resources/emtests/test_sscanf.c diff --git a/lib/emscripten-tests/emtests/test_sscanf.out b/tests/emscripten_resources/emtests/test_sscanf.out similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf.out rename to tests/emscripten_resources/emtests/test_sscanf.out diff --git a/lib/emscripten-tests/emtests/test_sscanf.wasm b/tests/emscripten_resources/emtests/test_sscanf.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf.wasm rename to tests/emscripten_resources/emtests/test_sscanf.wasm diff --git a/lib/emscripten-tests/emtests/test_sscanf_3.c b/tests/emscripten_resources/emtests/test_sscanf_3.c similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf_3.c rename to tests/emscripten_resources/emtests/test_sscanf_3.c diff --git a/lib/emscripten-tests/emtests/test_sscanf_3.out b/tests/emscripten_resources/emtests/test_sscanf_3.out similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf_3.out rename to tests/emscripten_resources/emtests/test_sscanf_3.out diff --git a/lib/emscripten-tests/emtests/test_sscanf_3.wasm b/tests/emscripten_resources/emtests/test_sscanf_3.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf_3.wasm rename to tests/emscripten_resources/emtests/test_sscanf_3.wasm diff --git a/lib/emscripten-tests/emtests/test_sscanf_4.c b/tests/emscripten_resources/emtests/test_sscanf_4.c similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf_4.c rename to tests/emscripten_resources/emtests/test_sscanf_4.c diff --git a/lib/emscripten-tests/emtests/test_sscanf_4.out b/tests/emscripten_resources/emtests/test_sscanf_4.out similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf_4.out rename to tests/emscripten_resources/emtests/test_sscanf_4.out diff --git a/lib/emscripten-tests/emtests/test_sscanf_4.wasm b/tests/emscripten_resources/emtests/test_sscanf_4.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf_4.wasm rename to tests/emscripten_resources/emtests/test_sscanf_4.wasm diff --git a/lib/emscripten-tests/emtests/test_sscanf_5.c b/tests/emscripten_resources/emtests/test_sscanf_5.c similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf_5.c rename to tests/emscripten_resources/emtests/test_sscanf_5.c diff --git a/lib/emscripten-tests/emtests/test_sscanf_5.out b/tests/emscripten_resources/emtests/test_sscanf_5.out similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf_5.out rename to tests/emscripten_resources/emtests/test_sscanf_5.out diff --git a/lib/emscripten-tests/emtests/test_sscanf_5.wasm b/tests/emscripten_resources/emtests/test_sscanf_5.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf_5.wasm rename to tests/emscripten_resources/emtests/test_sscanf_5.wasm diff --git a/lib/emscripten-tests/emtests/test_sscanf_6.c b/tests/emscripten_resources/emtests/test_sscanf_6.c similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf_6.c rename to tests/emscripten_resources/emtests/test_sscanf_6.c diff --git a/lib/emscripten-tests/emtests/test_sscanf_6.out b/tests/emscripten_resources/emtests/test_sscanf_6.out similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf_6.out rename to tests/emscripten_resources/emtests/test_sscanf_6.out diff --git a/lib/emscripten-tests/emtests/test_sscanf_6.wasm b/tests/emscripten_resources/emtests/test_sscanf_6.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf_6.wasm rename to tests/emscripten_resources/emtests/test_sscanf_6.wasm diff --git a/lib/emscripten-tests/emtests/test_sscanf_caps.c b/tests/emscripten_resources/emtests/test_sscanf_caps.c similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf_caps.c rename to tests/emscripten_resources/emtests/test_sscanf_caps.c diff --git a/lib/emscripten-tests/emtests/test_sscanf_caps.out b/tests/emscripten_resources/emtests/test_sscanf_caps.out similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf_caps.out rename to tests/emscripten_resources/emtests/test_sscanf_caps.out diff --git a/lib/emscripten-tests/emtests/test_sscanf_caps.wasm b/tests/emscripten_resources/emtests/test_sscanf_caps.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf_caps.wasm rename to tests/emscripten_resources/emtests/test_sscanf_caps.wasm diff --git a/lib/emscripten-tests/emtests/test_sscanf_float.c b/tests/emscripten_resources/emtests/test_sscanf_float.c similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf_float.c rename to tests/emscripten_resources/emtests/test_sscanf_float.c diff --git a/lib/emscripten-tests/emtests/test_sscanf_float.out b/tests/emscripten_resources/emtests/test_sscanf_float.out similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf_float.out rename to tests/emscripten_resources/emtests/test_sscanf_float.out diff --git a/lib/emscripten-tests/emtests/test_sscanf_float.wasm b/tests/emscripten_resources/emtests/test_sscanf_float.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf_float.wasm rename to tests/emscripten_resources/emtests/test_sscanf_float.wasm diff --git a/lib/emscripten-tests/emtests/test_sscanf_hex.cpp b/tests/emscripten_resources/emtests/test_sscanf_hex.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf_hex.cpp rename to tests/emscripten_resources/emtests/test_sscanf_hex.cpp diff --git a/lib/emscripten-tests/emtests/test_sscanf_hex.out b/tests/emscripten_resources/emtests/test_sscanf_hex.out similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf_hex.out rename to tests/emscripten_resources/emtests/test_sscanf_hex.out diff --git a/lib/emscripten-tests/emtests/test_sscanf_hex.wasm b/tests/emscripten_resources/emtests/test_sscanf_hex.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf_hex.wasm rename to tests/emscripten_resources/emtests/test_sscanf_hex.wasm diff --git a/lib/emscripten-tests/emtests/test_sscanf_n.c b/tests/emscripten_resources/emtests/test_sscanf_n.c similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf_n.c rename to tests/emscripten_resources/emtests/test_sscanf_n.c diff --git a/lib/emscripten-tests/emtests/test_sscanf_n.out b/tests/emscripten_resources/emtests/test_sscanf_n.out similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf_n.out rename to tests/emscripten_resources/emtests/test_sscanf_n.out diff --git a/lib/emscripten-tests/emtests/test_sscanf_n.wasm b/tests/emscripten_resources/emtests/test_sscanf_n.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf_n.wasm rename to tests/emscripten_resources/emtests/test_sscanf_n.wasm diff --git a/lib/emscripten-tests/emtests/test_sscanf_other_whitespace.c b/tests/emscripten_resources/emtests/test_sscanf_other_whitespace.c similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf_other_whitespace.c rename to tests/emscripten_resources/emtests/test_sscanf_other_whitespace.c diff --git a/lib/emscripten-tests/emtests/test_sscanf_other_whitespace.out b/tests/emscripten_resources/emtests/test_sscanf_other_whitespace.out similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf_other_whitespace.out rename to tests/emscripten_resources/emtests/test_sscanf_other_whitespace.out diff --git a/lib/emscripten-tests/emtests/test_sscanf_other_whitespace.wasm b/tests/emscripten_resources/emtests/test_sscanf_other_whitespace.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf_other_whitespace.wasm rename to tests/emscripten_resources/emtests/test_sscanf_other_whitespace.wasm diff --git a/lib/emscripten-tests/emtests/test_sscanf_skip.c b/tests/emscripten_resources/emtests/test_sscanf_skip.c similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf_skip.c rename to tests/emscripten_resources/emtests/test_sscanf_skip.c diff --git a/lib/emscripten-tests/emtests/test_sscanf_skip.out b/tests/emscripten_resources/emtests/test_sscanf_skip.out similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf_skip.out rename to tests/emscripten_resources/emtests/test_sscanf_skip.out diff --git a/lib/emscripten-tests/emtests/test_sscanf_skip.wasm b/tests/emscripten_resources/emtests/test_sscanf_skip.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf_skip.wasm rename to tests/emscripten_resources/emtests/test_sscanf_skip.wasm diff --git a/lib/emscripten-tests/emtests/test_sscanf_whitespace.c b/tests/emscripten_resources/emtests/test_sscanf_whitespace.c similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf_whitespace.c rename to tests/emscripten_resources/emtests/test_sscanf_whitespace.c diff --git a/lib/emscripten-tests/emtests/test_sscanf_whitespace.out b/tests/emscripten_resources/emtests/test_sscanf_whitespace.out similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf_whitespace.out rename to tests/emscripten_resources/emtests/test_sscanf_whitespace.out diff --git a/lib/emscripten-tests/emtests/test_sscanf_whitespace.wasm b/tests/emscripten_resources/emtests/test_sscanf_whitespace.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_sscanf_whitespace.wasm rename to tests/emscripten_resources/emtests/test_sscanf_whitespace.wasm diff --git a/lib/emscripten-tests/emtests/test_stack.c b/tests/emscripten_resources/emtests/test_stack.c similarity index 100% rename from lib/emscripten-tests/emtests/test_stack.c rename to tests/emscripten_resources/emtests/test_stack.c diff --git a/lib/emscripten-tests/emtests/test_stack.out b/tests/emscripten_resources/emtests/test_stack.out similarity index 100% rename from lib/emscripten-tests/emtests/test_stack.out rename to tests/emscripten_resources/emtests/test_stack.out diff --git a/lib/emscripten-tests/emtests/test_stack_align.cpp b/tests/emscripten_resources/emtests/test_stack_align.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_stack_align.cpp rename to tests/emscripten_resources/emtests/test_stack_align.cpp diff --git a/lib/emscripten-tests/emtests/test_stack_align.wasm b/tests/emscripten_resources/emtests/test_stack_align.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_stack_align.wasm rename to tests/emscripten_resources/emtests/test_stack_align.wasm diff --git a/lib/emscripten-tests/emtests/test_stack_byval.c b/tests/emscripten_resources/emtests/test_stack_byval.c similarity index 100% rename from lib/emscripten-tests/emtests/test_stack_byval.c rename to tests/emscripten_resources/emtests/test_stack_byval.c diff --git a/lib/emscripten-tests/emtests/test_stack_byval.out b/tests/emscripten_resources/emtests/test_stack_byval.out similarity index 100% rename from lib/emscripten-tests/emtests/test_stack_byval.out rename to tests/emscripten_resources/emtests/test_stack_byval.out diff --git a/lib/emscripten-tests/emtests/test_stack_restore.c b/tests/emscripten_resources/emtests/test_stack_restore.c similarity index 100% rename from lib/emscripten-tests/emtests/test_stack_restore.c rename to tests/emscripten_resources/emtests/test_stack_restore.c diff --git a/lib/emscripten-tests/emtests/test_stack_restore.out b/tests/emscripten_resources/emtests/test_stack_restore.out similarity index 100% rename from lib/emscripten-tests/emtests/test_stack_restore.out rename to tests/emscripten_resources/emtests/test_stack_restore.out diff --git a/lib/emscripten-tests/emtests/test_stack_varargs.c b/tests/emscripten_resources/emtests/test_stack_varargs.c similarity index 100% rename from lib/emscripten-tests/emtests/test_stack_varargs.c rename to tests/emscripten_resources/emtests/test_stack_varargs.c diff --git a/lib/emscripten-tests/emtests/test_stack_varargs.out b/tests/emscripten_resources/emtests/test_stack_varargs.out similarity index 100% rename from lib/emscripten-tests/emtests/test_stack_varargs.out rename to tests/emscripten_resources/emtests/test_stack_varargs.out diff --git a/lib/emscripten-tests/emtests/test_stack_varargs.wasm b/tests/emscripten_resources/emtests/test_stack_varargs.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_stack_varargs.wasm rename to tests/emscripten_resources/emtests/test_stack_varargs.wasm diff --git a/lib/emscripten-tests/emtests/test_stack_void.c b/tests/emscripten_resources/emtests/test_stack_void.c similarity index 100% rename from lib/emscripten-tests/emtests/test_stack_void.c rename to tests/emscripten_resources/emtests/test_stack_void.c diff --git a/lib/emscripten-tests/emtests/test_stack_void.out b/tests/emscripten_resources/emtests/test_stack_void.out similarity index 100% rename from lib/emscripten-tests/emtests/test_stack_void.out rename to tests/emscripten_resources/emtests/test_stack_void.out diff --git a/lib/emscripten-tests/emtests/test_stack_void.wasm b/tests/emscripten_resources/emtests/test_stack_void.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_stack_void.wasm rename to tests/emscripten_resources/emtests/test_stack_void.wasm diff --git a/lib/emscripten-tests/emtests/test_static_variable.c b/tests/emscripten_resources/emtests/test_static_variable.c similarity index 100% rename from lib/emscripten-tests/emtests/test_static_variable.c rename to tests/emscripten_resources/emtests/test_static_variable.c diff --git a/lib/emscripten-tests/emtests/test_static_variable.out b/tests/emscripten_resources/emtests/test_static_variable.out similarity index 100% rename from lib/emscripten-tests/emtests/test_static_variable.out rename to tests/emscripten_resources/emtests/test_static_variable.out diff --git a/lib/emscripten-tests/emtests/test_statics.c b/tests/emscripten_resources/emtests/test_statics.c similarity index 100% rename from lib/emscripten-tests/emtests/test_statics.c rename to tests/emscripten_resources/emtests/test_statics.c diff --git a/lib/emscripten-tests/emtests/test_statics.out b/tests/emscripten_resources/emtests/test_statics.out similarity index 100% rename from lib/emscripten-tests/emtests/test_statics.out rename to tests/emscripten_resources/emtests/test_statics.out diff --git a/lib/emscripten-tests/emtests/test_statvfs.c b/tests/emscripten_resources/emtests/test_statvfs.c similarity index 100% rename from lib/emscripten-tests/emtests/test_statvfs.c rename to tests/emscripten_resources/emtests/test_statvfs.c diff --git a/lib/emscripten-tests/emtests/test_statvfs.out b/tests/emscripten_resources/emtests/test_statvfs.out similarity index 100% rename from lib/emscripten-tests/emtests/test_statvfs.out rename to tests/emscripten_resources/emtests/test_statvfs.out diff --git a/lib/emscripten-tests/emtests/test_statvfs.wasm b/tests/emscripten_resources/emtests/test_statvfs.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_statvfs.wasm rename to tests/emscripten_resources/emtests/test_statvfs.wasm diff --git a/lib/emscripten-tests/emtests/test_std_cout_new.cpp b/tests/emscripten_resources/emtests/test_std_cout_new.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_std_cout_new.cpp rename to tests/emscripten_resources/emtests/test_std_cout_new.cpp diff --git a/lib/emscripten-tests/emtests/test_std_cout_new.out b/tests/emscripten_resources/emtests/test_std_cout_new.out similarity index 100% rename from lib/emscripten-tests/emtests/test_std_cout_new.out rename to tests/emscripten_resources/emtests/test_std_cout_new.out diff --git a/lib/emscripten-tests/emtests/test_std_cout_new.wasm b/tests/emscripten_resources/emtests/test_std_cout_new.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_std_cout_new.wasm rename to tests/emscripten_resources/emtests/test_std_cout_new.wasm diff --git a/lib/emscripten-tests/emtests/test_stdlibs.c b/tests/emscripten_resources/emtests/test_stdlibs.c similarity index 100% rename from lib/emscripten-tests/emtests/test_stdlibs.c rename to tests/emscripten_resources/emtests/test_stdlibs.c diff --git a/lib/emscripten-tests/emtests/test_stdlibs.out b/tests/emscripten_resources/emtests/test_stdlibs.out similarity index 100% rename from lib/emscripten-tests/emtests/test_stdlibs.out rename to tests/emscripten_resources/emtests/test_stdlibs.out diff --git a/lib/emscripten-tests/emtests/test_stdvec.c b/tests/emscripten_resources/emtests/test_stdvec.c similarity index 100% rename from lib/emscripten-tests/emtests/test_stdvec.c rename to tests/emscripten_resources/emtests/test_stdvec.c diff --git a/lib/emscripten-tests/emtests/test_stdvec.out b/tests/emscripten_resources/emtests/test_stdvec.out similarity index 100% rename from lib/emscripten-tests/emtests/test_stdvec.out rename to tests/emscripten_resources/emtests/test_stdvec.out diff --git a/lib/emscripten-tests/emtests/test_strcasecmp.c b/tests/emscripten_resources/emtests/test_strcasecmp.c similarity index 100% rename from lib/emscripten-tests/emtests/test_strcasecmp.c rename to tests/emscripten_resources/emtests/test_strcasecmp.c diff --git a/lib/emscripten-tests/emtests/test_strcasecmp.out b/tests/emscripten_resources/emtests/test_strcasecmp.out similarity index 100% rename from lib/emscripten-tests/emtests/test_strcasecmp.out rename to tests/emscripten_resources/emtests/test_strcasecmp.out diff --git a/lib/emscripten-tests/emtests/test_strcasecmp.wasm b/tests/emscripten_resources/emtests/test_strcasecmp.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_strcasecmp.wasm rename to tests/emscripten_resources/emtests/test_strcasecmp.wasm diff --git a/lib/emscripten-tests/emtests/test_strcmp_uni.c b/tests/emscripten_resources/emtests/test_strcmp_uni.c similarity index 100% rename from lib/emscripten-tests/emtests/test_strcmp_uni.c rename to tests/emscripten_resources/emtests/test_strcmp_uni.c diff --git a/lib/emscripten-tests/emtests/test_strcmp_uni.out b/tests/emscripten_resources/emtests/test_strcmp_uni.out similarity index 100% rename from lib/emscripten-tests/emtests/test_strcmp_uni.out rename to tests/emscripten_resources/emtests/test_strcmp_uni.out diff --git a/lib/emscripten-tests/emtests/test_strcmp_uni.wasm b/tests/emscripten_resources/emtests/test_strcmp_uni.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_strcmp_uni.wasm rename to tests/emscripten_resources/emtests/test_strcmp_uni.wasm diff --git a/lib/emscripten-tests/emtests/test_strftime.cpp b/tests/emscripten_resources/emtests/test_strftime.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_strftime.cpp rename to tests/emscripten_resources/emtests/test_strftime.cpp diff --git a/lib/emscripten-tests/emtests/test_strftime.out b/tests/emscripten_resources/emtests/test_strftime.out similarity index 100% rename from lib/emscripten-tests/emtests/test_strftime.out rename to tests/emscripten_resources/emtests/test_strftime.out diff --git a/lib/emscripten-tests/emtests/test_strftime.wasm b/tests/emscripten_resources/emtests/test_strftime.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_strftime.wasm rename to tests/emscripten_resources/emtests/test_strftime.wasm diff --git a/lib/emscripten-tests/emtests/test_strings.c b/tests/emscripten_resources/emtests/test_strings.c similarity index 100% rename from lib/emscripten-tests/emtests/test_strings.c rename to tests/emscripten_resources/emtests/test_strings.c diff --git a/lib/emscripten-tests/emtests/test_strings.out b/tests/emscripten_resources/emtests/test_strings.out similarity index 100% rename from lib/emscripten-tests/emtests/test_strings.out rename to tests/emscripten_resources/emtests/test_strings.out diff --git a/lib/emscripten-tests/emtests/test_strings.wasm b/tests/emscripten_resources/emtests/test_strings.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_strings.wasm rename to tests/emscripten_resources/emtests/test_strings.wasm diff --git a/lib/emscripten-tests/emtests/test_strndup.c b/tests/emscripten_resources/emtests/test_strndup.c similarity index 100% rename from lib/emscripten-tests/emtests/test_strndup.c rename to tests/emscripten_resources/emtests/test_strndup.c diff --git a/lib/emscripten-tests/emtests/test_strndup.out b/tests/emscripten_resources/emtests/test_strndup.out similarity index 100% rename from lib/emscripten-tests/emtests/test_strndup.out rename to tests/emscripten_resources/emtests/test_strndup.out diff --git a/lib/emscripten-tests/emtests/test_strndup.wasm b/tests/emscripten_resources/emtests/test_strndup.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_strndup.wasm rename to tests/emscripten_resources/emtests/test_strndup.wasm diff --git a/lib/emscripten-tests/emtests/test_strptime_days.c b/tests/emscripten_resources/emtests/test_strptime_days.c similarity index 100% rename from lib/emscripten-tests/emtests/test_strptime_days.c rename to tests/emscripten_resources/emtests/test_strptime_days.c diff --git a/lib/emscripten-tests/emtests/test_strptime_days.out b/tests/emscripten_resources/emtests/test_strptime_days.out similarity index 100% rename from lib/emscripten-tests/emtests/test_strptime_days.out rename to tests/emscripten_resources/emtests/test_strptime_days.out diff --git a/lib/emscripten-tests/emtests/test_strptime_days.wasm b/tests/emscripten_resources/emtests/test_strptime_days.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_strptime_days.wasm rename to tests/emscripten_resources/emtests/test_strptime_days.wasm diff --git a/lib/emscripten-tests/emtests/test_strptime_reentrant.c b/tests/emscripten_resources/emtests/test_strptime_reentrant.c similarity index 100% rename from lib/emscripten-tests/emtests/test_strptime_reentrant.c rename to tests/emscripten_resources/emtests/test_strptime_reentrant.c diff --git a/lib/emscripten-tests/emtests/test_strptime_reentrant.out b/tests/emscripten_resources/emtests/test_strptime_reentrant.out similarity index 100% rename from lib/emscripten-tests/emtests/test_strptime_reentrant.out rename to tests/emscripten_resources/emtests/test_strptime_reentrant.out diff --git a/lib/emscripten-tests/emtests/test_strptime_reentrant.wasm b/tests/emscripten_resources/emtests/test_strptime_reentrant.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_strptime_reentrant.wasm rename to tests/emscripten_resources/emtests/test_strptime_reentrant.wasm diff --git a/lib/emscripten-tests/emtests/test_strptime_tm.c b/tests/emscripten_resources/emtests/test_strptime_tm.c similarity index 100% rename from lib/emscripten-tests/emtests/test_strptime_tm.c rename to tests/emscripten_resources/emtests/test_strptime_tm.c diff --git a/lib/emscripten-tests/emtests/test_strptime_tm.out b/tests/emscripten_resources/emtests/test_strptime_tm.out similarity index 100% rename from lib/emscripten-tests/emtests/test_strptime_tm.out rename to tests/emscripten_resources/emtests/test_strptime_tm.out diff --git a/lib/emscripten-tests/emtests/test_strstr.c b/tests/emscripten_resources/emtests/test_strstr.c similarity index 100% rename from lib/emscripten-tests/emtests/test_strstr.c rename to tests/emscripten_resources/emtests/test_strstr.c diff --git a/lib/emscripten-tests/emtests/test_strstr.out b/tests/emscripten_resources/emtests/test_strstr.out similarity index 100% rename from lib/emscripten-tests/emtests/test_strstr.out rename to tests/emscripten_resources/emtests/test_strstr.out diff --git a/lib/emscripten-tests/emtests/test_strstr.wasm b/tests/emscripten_resources/emtests/test_strstr.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_strstr.wasm rename to tests/emscripten_resources/emtests/test_strstr.wasm diff --git a/lib/emscripten-tests/emtests/test_strtod.c b/tests/emscripten_resources/emtests/test_strtod.c similarity index 100% rename from lib/emscripten-tests/emtests/test_strtod.c rename to tests/emscripten_resources/emtests/test_strtod.c diff --git a/lib/emscripten-tests/emtests/test_strtod.out b/tests/emscripten_resources/emtests/test_strtod.out similarity index 100% rename from lib/emscripten-tests/emtests/test_strtod.out rename to tests/emscripten_resources/emtests/test_strtod.out diff --git a/lib/emscripten-tests/emtests/test_strtod.wasm b/tests/emscripten_resources/emtests/test_strtod.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_strtod.wasm rename to tests/emscripten_resources/emtests/test_strtod.wasm diff --git a/lib/emscripten-tests/emtests/test_strtok.c b/tests/emscripten_resources/emtests/test_strtok.c similarity index 100% rename from lib/emscripten-tests/emtests/test_strtok.c rename to tests/emscripten_resources/emtests/test_strtok.c diff --git a/lib/emscripten-tests/emtests/test_strtok.out b/tests/emscripten_resources/emtests/test_strtok.out similarity index 100% rename from lib/emscripten-tests/emtests/test_strtok.out rename to tests/emscripten_resources/emtests/test_strtok.out diff --git a/lib/emscripten-tests/emtests/test_strtok.wasm b/tests/emscripten_resources/emtests/test_strtok.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_strtok.wasm rename to tests/emscripten_resources/emtests/test_strtok.wasm diff --git a/lib/emscripten-tests/emtests/test_strtol_bin.c b/tests/emscripten_resources/emtests/test_strtol_bin.c similarity index 100% rename from lib/emscripten-tests/emtests/test_strtol_bin.c rename to tests/emscripten_resources/emtests/test_strtol_bin.c diff --git a/lib/emscripten-tests/emtests/test_strtol_bin.out b/tests/emscripten_resources/emtests/test_strtol_bin.out similarity index 100% rename from lib/emscripten-tests/emtests/test_strtol_bin.out rename to tests/emscripten_resources/emtests/test_strtol_bin.out diff --git a/lib/emscripten-tests/emtests/test_strtol_bin.wasm b/tests/emscripten_resources/emtests/test_strtol_bin.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_strtol_bin.wasm rename to tests/emscripten_resources/emtests/test_strtol_bin.wasm diff --git a/lib/emscripten-tests/emtests/test_strtol_dec.c b/tests/emscripten_resources/emtests/test_strtol_dec.c similarity index 100% rename from lib/emscripten-tests/emtests/test_strtol_dec.c rename to tests/emscripten_resources/emtests/test_strtol_dec.c diff --git a/lib/emscripten-tests/emtests/test_strtol_dec.out b/tests/emscripten_resources/emtests/test_strtol_dec.out similarity index 100% rename from lib/emscripten-tests/emtests/test_strtol_dec.out rename to tests/emscripten_resources/emtests/test_strtol_dec.out diff --git a/lib/emscripten-tests/emtests/test_strtol_dec.wasm b/tests/emscripten_resources/emtests/test_strtol_dec.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_strtol_dec.wasm rename to tests/emscripten_resources/emtests/test_strtol_dec.wasm diff --git a/lib/emscripten-tests/emtests/test_strtol_hex.c b/tests/emscripten_resources/emtests/test_strtol_hex.c similarity index 100% rename from lib/emscripten-tests/emtests/test_strtol_hex.c rename to tests/emscripten_resources/emtests/test_strtol_hex.c diff --git a/lib/emscripten-tests/emtests/test_strtol_hex.out b/tests/emscripten_resources/emtests/test_strtol_hex.out similarity index 100% rename from lib/emscripten-tests/emtests/test_strtol_hex.out rename to tests/emscripten_resources/emtests/test_strtol_hex.out diff --git a/lib/emscripten-tests/emtests/test_strtol_hex.wasm b/tests/emscripten_resources/emtests/test_strtol_hex.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_strtol_hex.wasm rename to tests/emscripten_resources/emtests/test_strtol_hex.wasm diff --git a/lib/emscripten-tests/emtests/test_strtol_oct.c b/tests/emscripten_resources/emtests/test_strtol_oct.c similarity index 100% rename from lib/emscripten-tests/emtests/test_strtol_oct.c rename to tests/emscripten_resources/emtests/test_strtol_oct.c diff --git a/lib/emscripten-tests/emtests/test_strtol_oct.out b/tests/emscripten_resources/emtests/test_strtol_oct.out similarity index 100% rename from lib/emscripten-tests/emtests/test_strtol_oct.out rename to tests/emscripten_resources/emtests/test_strtol_oct.out diff --git a/lib/emscripten-tests/emtests/test_strtol_oct.wasm b/tests/emscripten_resources/emtests/test_strtol_oct.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_strtol_oct.wasm rename to tests/emscripten_resources/emtests/test_strtol_oct.wasm diff --git a/lib/emscripten-tests/emtests/test_strtold.c b/tests/emscripten_resources/emtests/test_strtold.c similarity index 100% rename from lib/emscripten-tests/emtests/test_strtold.c rename to tests/emscripten_resources/emtests/test_strtold.c diff --git a/lib/emscripten-tests/emtests/test_strtold.out b/tests/emscripten_resources/emtests/test_strtold.out similarity index 100% rename from lib/emscripten-tests/emtests/test_strtold.out rename to tests/emscripten_resources/emtests/test_strtold.out diff --git a/lib/emscripten-tests/emtests/test_strtold.wasm b/tests/emscripten_resources/emtests/test_strtold.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_strtold.wasm rename to tests/emscripten_resources/emtests/test_strtold.wasm diff --git a/lib/emscripten-tests/emtests/test_strtoll_bin.c b/tests/emscripten_resources/emtests/test_strtoll_bin.c similarity index 100% rename from lib/emscripten-tests/emtests/test_strtoll_bin.c rename to tests/emscripten_resources/emtests/test_strtoll_bin.c diff --git a/lib/emscripten-tests/emtests/test_strtoll_bin.out b/tests/emscripten_resources/emtests/test_strtoll_bin.out similarity index 100% rename from lib/emscripten-tests/emtests/test_strtoll_bin.out rename to tests/emscripten_resources/emtests/test_strtoll_bin.out diff --git a/lib/emscripten-tests/emtests/test_strtoll_bin.wasm b/tests/emscripten_resources/emtests/test_strtoll_bin.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_strtoll_bin.wasm rename to tests/emscripten_resources/emtests/test_strtoll_bin.wasm diff --git a/lib/emscripten-tests/emtests/test_strtoll_dec.c b/tests/emscripten_resources/emtests/test_strtoll_dec.c similarity index 100% rename from lib/emscripten-tests/emtests/test_strtoll_dec.c rename to tests/emscripten_resources/emtests/test_strtoll_dec.c diff --git a/lib/emscripten-tests/emtests/test_strtoll_dec.out b/tests/emscripten_resources/emtests/test_strtoll_dec.out similarity index 100% rename from lib/emscripten-tests/emtests/test_strtoll_dec.out rename to tests/emscripten_resources/emtests/test_strtoll_dec.out diff --git a/lib/emscripten-tests/emtests/test_strtoll_dec.wasm b/tests/emscripten_resources/emtests/test_strtoll_dec.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_strtoll_dec.wasm rename to tests/emscripten_resources/emtests/test_strtoll_dec.wasm diff --git a/lib/emscripten-tests/emtests/test_strtoll_hex.c b/tests/emscripten_resources/emtests/test_strtoll_hex.c similarity index 100% rename from lib/emscripten-tests/emtests/test_strtoll_hex.c rename to tests/emscripten_resources/emtests/test_strtoll_hex.c diff --git a/lib/emscripten-tests/emtests/test_strtoll_hex.out b/tests/emscripten_resources/emtests/test_strtoll_hex.out similarity index 100% rename from lib/emscripten-tests/emtests/test_strtoll_hex.out rename to tests/emscripten_resources/emtests/test_strtoll_hex.out diff --git a/lib/emscripten-tests/emtests/test_strtoll_hex.wasm b/tests/emscripten_resources/emtests/test_strtoll_hex.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_strtoll_hex.wasm rename to tests/emscripten_resources/emtests/test_strtoll_hex.wasm diff --git a/lib/emscripten-tests/emtests/test_strtoll_oct.c b/tests/emscripten_resources/emtests/test_strtoll_oct.c similarity index 100% rename from lib/emscripten-tests/emtests/test_strtoll_oct.c rename to tests/emscripten_resources/emtests/test_strtoll_oct.c diff --git a/lib/emscripten-tests/emtests/test_strtoll_oct.out b/tests/emscripten_resources/emtests/test_strtoll_oct.out similarity index 100% rename from lib/emscripten-tests/emtests/test_strtoll_oct.out rename to tests/emscripten_resources/emtests/test_strtoll_oct.out diff --git a/lib/emscripten-tests/emtests/test_strtoll_oct.wasm b/tests/emscripten_resources/emtests/test_strtoll_oct.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_strtoll_oct.wasm rename to tests/emscripten_resources/emtests/test_strtoll_oct.wasm diff --git a/lib/emscripten-tests/emtests/test_struct_varargs.c b/tests/emscripten_resources/emtests/test_struct_varargs.c similarity index 100% rename from lib/emscripten-tests/emtests/test_struct_varargs.c rename to tests/emscripten_resources/emtests/test_struct_varargs.c diff --git a/lib/emscripten-tests/emtests/test_struct_varargs.out b/tests/emscripten_resources/emtests/test_struct_varargs.out similarity index 100% rename from lib/emscripten-tests/emtests/test_struct_varargs.out rename to tests/emscripten_resources/emtests/test_struct_varargs.out diff --git a/lib/emscripten-tests/emtests/test_struct_varargs.wasm b/tests/emscripten_resources/emtests/test_struct_varargs.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_struct_varargs.wasm rename to tests/emscripten_resources/emtests/test_struct_varargs.wasm diff --git a/lib/emscripten-tests/emtests/test_structs.c b/tests/emscripten_resources/emtests/test_structs.c similarity index 100% rename from lib/emscripten-tests/emtests/test_structs.c rename to tests/emscripten_resources/emtests/test_structs.c diff --git a/lib/emscripten-tests/emtests/test_structs.out b/tests/emscripten_resources/emtests/test_structs.out similarity index 100% rename from lib/emscripten-tests/emtests/test_structs.out rename to tests/emscripten_resources/emtests/test_structs.out diff --git a/lib/emscripten-tests/emtests/test_time_c.c b/tests/emscripten_resources/emtests/test_time_c.c similarity index 100% rename from lib/emscripten-tests/emtests/test_time_c.c rename to tests/emscripten_resources/emtests/test_time_c.c diff --git a/lib/emscripten-tests/emtests/test_time_c.out b/tests/emscripten_resources/emtests/test_time_c.out similarity index 100% rename from lib/emscripten-tests/emtests/test_time_c.out rename to tests/emscripten_resources/emtests/test_time_c.out diff --git a/lib/emscripten-tests/emtests/test_time_c.wasm b/tests/emscripten_resources/emtests/test_time_c.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_time_c.wasm rename to tests/emscripten_resources/emtests/test_time_c.wasm diff --git a/lib/emscripten-tests/emtests/test_timeb.c b/tests/emscripten_resources/emtests/test_timeb.c similarity index 100% rename from lib/emscripten-tests/emtests/test_timeb.c rename to tests/emscripten_resources/emtests/test_timeb.c diff --git a/lib/emscripten-tests/emtests/test_timeb.out b/tests/emscripten_resources/emtests/test_timeb.out similarity index 100% rename from lib/emscripten-tests/emtests/test_timeb.out rename to tests/emscripten_resources/emtests/test_timeb.out diff --git a/lib/emscripten-tests/emtests/test_tinyfuncstr.c b/tests/emscripten_resources/emtests/test_tinyfuncstr.c similarity index 100% rename from lib/emscripten-tests/emtests/test_tinyfuncstr.c rename to tests/emscripten_resources/emtests/test_tinyfuncstr.c diff --git a/lib/emscripten-tests/emtests/test_tinyfuncstr.out b/tests/emscripten_resources/emtests/test_tinyfuncstr.out similarity index 100% rename from lib/emscripten-tests/emtests/test_tinyfuncstr.out rename to tests/emscripten_resources/emtests/test_tinyfuncstr.out diff --git a/lib/emscripten-tests/emtests/test_tracing.c b/tests/emscripten_resources/emtests/test_tracing.c similarity index 100% rename from lib/emscripten-tests/emtests/test_tracing.c rename to tests/emscripten_resources/emtests/test_tracing.c diff --git a/lib/emscripten-tests/emtests/test_tracing.out b/tests/emscripten_resources/emtests/test_tracing.out similarity index 100% rename from lib/emscripten-tests/emtests/test_tracing.out rename to tests/emscripten_resources/emtests/test_tracing.out diff --git a/lib/emscripten-tests/emtests/test_tracing.wasm b/tests/emscripten_resources/emtests/test_tracing.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_tracing.wasm rename to tests/emscripten_resources/emtests/test_tracing.wasm diff --git a/lib/emscripten-tests/emtests/test_transtrcase.c b/tests/emscripten_resources/emtests/test_transtrcase.c similarity index 100% rename from lib/emscripten-tests/emtests/test_transtrcase.c rename to tests/emscripten_resources/emtests/test_transtrcase.c diff --git a/lib/emscripten-tests/emtests/test_transtrcase.out b/tests/emscripten_resources/emtests/test_transtrcase.out similarity index 100% rename from lib/emscripten-tests/emtests/test_transtrcase.out rename to tests/emscripten_resources/emtests/test_transtrcase.out diff --git a/lib/emscripten-tests/emtests/test_transtrcase.wasm b/tests/emscripten_resources/emtests/test_transtrcase.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_transtrcase.wasm rename to tests/emscripten_resources/emtests/test_transtrcase.wasm diff --git a/lib/emscripten-tests/emtests/test_trickystring.c b/tests/emscripten_resources/emtests/test_trickystring.c similarity index 100% rename from lib/emscripten-tests/emtests/test_trickystring.c rename to tests/emscripten_resources/emtests/test_trickystring.c diff --git a/lib/emscripten-tests/emtests/test_trickystring.out b/tests/emscripten_resources/emtests/test_trickystring.out similarity index 100% rename from lib/emscripten-tests/emtests/test_trickystring.out rename to tests/emscripten_resources/emtests/test_trickystring.out diff --git a/lib/emscripten-tests/emtests/test_trickystring.wasm b/tests/emscripten_resources/emtests/test_trickystring.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_trickystring.wasm rename to tests/emscripten_resources/emtests/test_trickystring.wasm diff --git a/lib/emscripten-tests/emtests/test_typeid.c b/tests/emscripten_resources/emtests/test_typeid.c similarity index 100% rename from lib/emscripten-tests/emtests/test_typeid.c rename to tests/emscripten_resources/emtests/test_typeid.c diff --git a/lib/emscripten-tests/emtests/test_typeid.out b/tests/emscripten_resources/emtests/test_typeid.out similarity index 100% rename from lib/emscripten-tests/emtests/test_typeid.out rename to tests/emscripten_resources/emtests/test_typeid.out diff --git a/lib/emscripten-tests/emtests/test_uname.c b/tests/emscripten_resources/emtests/test_uname.c similarity index 100% rename from lib/emscripten-tests/emtests/test_uname.c rename to tests/emscripten_resources/emtests/test_uname.c diff --git a/lib/emscripten-tests/emtests/test_uname.out b/tests/emscripten_resources/emtests/test_uname.out similarity index 100% rename from lib/emscripten-tests/emtests/test_uname.out rename to tests/emscripten_resources/emtests/test_uname.out diff --git a/lib/emscripten-tests/emtests/test_uname.wasm b/tests/emscripten_resources/emtests/test_uname.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_uname.wasm rename to tests/emscripten_resources/emtests/test_uname.wasm diff --git a/lib/emscripten-tests/emtests/test_unary_literal.cpp b/tests/emscripten_resources/emtests/test_unary_literal.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_unary_literal.cpp rename to tests/emscripten_resources/emtests/test_unary_literal.cpp diff --git a/lib/emscripten-tests/emtests/test_unary_literal.out b/tests/emscripten_resources/emtests/test_unary_literal.out similarity index 100% rename from lib/emscripten-tests/emtests/test_unary_literal.out rename to tests/emscripten_resources/emtests/test_unary_literal.out diff --git a/lib/emscripten-tests/emtests/test_unary_literal.wasm b/tests/emscripten_resources/emtests/test_unary_literal.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_unary_literal.wasm rename to tests/emscripten_resources/emtests/test_unary_literal.wasm diff --git a/lib/emscripten-tests/emtests/test_utf.c b/tests/emscripten_resources/emtests/test_utf.c similarity index 100% rename from lib/emscripten-tests/emtests/test_utf.c rename to tests/emscripten_resources/emtests/test_utf.c diff --git a/lib/emscripten-tests/emtests/test_utf.out b/tests/emscripten_resources/emtests/test_utf.out similarity index 100% rename from lib/emscripten-tests/emtests/test_utf.out rename to tests/emscripten_resources/emtests/test_utf.out diff --git a/lib/emscripten-tests/emtests/test_utf.wasm b/tests/emscripten_resources/emtests/test_utf.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_utf.wasm rename to tests/emscripten_resources/emtests/test_utf.wasm diff --git a/lib/emscripten-tests/emtests/test_varargs.c b/tests/emscripten_resources/emtests/test_varargs.c similarity index 100% rename from lib/emscripten-tests/emtests/test_varargs.c rename to tests/emscripten_resources/emtests/test_varargs.c diff --git a/lib/emscripten-tests/emtests/test_varargs.out b/tests/emscripten_resources/emtests/test_varargs.out similarity index 100% rename from lib/emscripten-tests/emtests/test_varargs.out rename to tests/emscripten_resources/emtests/test_varargs.out diff --git a/lib/emscripten-tests/emtests/test_varargs.wasm b/tests/emscripten_resources/emtests/test_varargs.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_varargs.wasm rename to tests/emscripten_resources/emtests/test_varargs.wasm diff --git a/lib/emscripten-tests/emtests/test_varargs_multi.c b/tests/emscripten_resources/emtests/test_varargs_multi.c similarity index 100% rename from lib/emscripten-tests/emtests/test_varargs_multi.c rename to tests/emscripten_resources/emtests/test_varargs_multi.c diff --git a/lib/emscripten-tests/emtests/test_varargs_multi.out b/tests/emscripten_resources/emtests/test_varargs_multi.out similarity index 100% rename from lib/emscripten-tests/emtests/test_varargs_multi.out rename to tests/emscripten_resources/emtests/test_varargs_multi.out diff --git a/lib/emscripten-tests/emtests/test_varargs_multi.wasm b/tests/emscripten_resources/emtests/test_varargs_multi.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_varargs_multi.wasm rename to tests/emscripten_resources/emtests/test_varargs_multi.wasm diff --git a/lib/emscripten-tests/emtests/test_vfs.c b/tests/emscripten_resources/emtests/test_vfs.c similarity index 100% rename from lib/emscripten-tests/emtests/test_vfs.c rename to tests/emscripten_resources/emtests/test_vfs.c diff --git a/lib/emscripten-tests/emtests/test_vfs.md b/tests/emscripten_resources/emtests/test_vfs.md similarity index 100% rename from lib/emscripten-tests/emtests/test_vfs.md rename to tests/emscripten_resources/emtests/test_vfs.md diff --git a/lib/emscripten-tests/emtests/test_vfs.out b/tests/emscripten_resources/emtests/test_vfs.out similarity index 100% rename from lib/emscripten-tests/emtests/test_vfs.out rename to tests/emscripten_resources/emtests/test_vfs.out diff --git a/lib/emscripten-tests/emtests/test_vfs.wasm b/tests/emscripten_resources/emtests/test_vfs.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_vfs.wasm rename to tests/emscripten_resources/emtests/test_vfs.wasm diff --git a/lib/emscripten-tests/emtests/test_vfs_bundle.wasm b/tests/emscripten_resources/emtests/test_vfs_bundle.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_vfs_bundle.wasm rename to tests/emscripten_resources/emtests/test_vfs_bundle.wasm diff --git a/lib/emscripten-tests/emtests/test_vfs_data.txt b/tests/emscripten_resources/emtests/test_vfs_data.txt similarity index 100% rename from lib/emscripten-tests/emtests/test_vfs_data.txt rename to tests/emscripten_resources/emtests/test_vfs_data.txt diff --git a/lib/emscripten-tests/emtests/test_vprintf.c b/tests/emscripten_resources/emtests/test_vprintf.c similarity index 100% rename from lib/emscripten-tests/emtests/test_vprintf.c rename to tests/emscripten_resources/emtests/test_vprintf.c diff --git a/lib/emscripten-tests/emtests/test_vprintf.out b/tests/emscripten_resources/emtests/test_vprintf.out similarity index 100% rename from lib/emscripten-tests/emtests/test_vprintf.out rename to tests/emscripten_resources/emtests/test_vprintf.out diff --git a/lib/emscripten-tests/emtests/test_vprintf.wasm b/tests/emscripten_resources/emtests/test_vprintf.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_vprintf.wasm rename to tests/emscripten_resources/emtests/test_vprintf.wasm diff --git a/lib/emscripten-tests/emtests/test_vsnprintf.c b/tests/emscripten_resources/emtests/test_vsnprintf.c similarity index 100% rename from lib/emscripten-tests/emtests/test_vsnprintf.c rename to tests/emscripten_resources/emtests/test_vsnprintf.c diff --git a/lib/emscripten-tests/emtests/test_vsnprintf.out b/tests/emscripten_resources/emtests/test_vsnprintf.out similarity index 100% rename from lib/emscripten-tests/emtests/test_vsnprintf.out rename to tests/emscripten_resources/emtests/test_vsnprintf.out diff --git a/lib/emscripten-tests/emtests/test_vsnprintf.wasm b/tests/emscripten_resources/emtests/test_vsnprintf.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_vsnprintf.wasm rename to tests/emscripten_resources/emtests/test_vsnprintf.wasm diff --git a/lib/emscripten-tests/emtests/test_wprintf.cpp b/tests/emscripten_resources/emtests/test_wprintf.cpp similarity index 100% rename from lib/emscripten-tests/emtests/test_wprintf.cpp rename to tests/emscripten_resources/emtests/test_wprintf.cpp diff --git a/lib/emscripten-tests/emtests/test_wprintf.out b/tests/emscripten_resources/emtests/test_wprintf.out similarity index 100% rename from lib/emscripten-tests/emtests/test_wprintf.out rename to tests/emscripten_resources/emtests/test_wprintf.out diff --git a/lib/emscripten-tests/emtests/test_wprintf.wasm b/tests/emscripten_resources/emtests/test_wprintf.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_wprintf.wasm rename to tests/emscripten_resources/emtests/test_wprintf.wasm diff --git a/lib/emscripten-tests/emtests/test_write_stdout_fileno.c b/tests/emscripten_resources/emtests/test_write_stdout_fileno.c similarity index 100% rename from lib/emscripten-tests/emtests/test_write_stdout_fileno.c rename to tests/emscripten_resources/emtests/test_write_stdout_fileno.c diff --git a/lib/emscripten-tests/emtests/test_write_stdout_fileno.out b/tests/emscripten_resources/emtests/test_write_stdout_fileno.out similarity index 100% rename from lib/emscripten-tests/emtests/test_write_stdout_fileno.out rename to tests/emscripten_resources/emtests/test_write_stdout_fileno.out diff --git a/lib/emscripten-tests/emtests/test_write_stdout_fileno.wasm b/tests/emscripten_resources/emtests/test_write_stdout_fileno.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_write_stdout_fileno.wasm rename to tests/emscripten_resources/emtests/test_write_stdout_fileno.wasm diff --git a/lib/emscripten-tests/emtests/test_zero_multiplication.c b/tests/emscripten_resources/emtests/test_zero_multiplication.c similarity index 100% rename from lib/emscripten-tests/emtests/test_zero_multiplication.c rename to tests/emscripten_resources/emtests/test_zero_multiplication.c diff --git a/lib/emscripten-tests/emtests/test_zero_multiplication.out b/tests/emscripten_resources/emtests/test_zero_multiplication.out similarity index 100% rename from lib/emscripten-tests/emtests/test_zero_multiplication.out rename to tests/emscripten_resources/emtests/test_zero_multiplication.out diff --git a/lib/emscripten-tests/emtests/test_zero_multiplication.wasm b/tests/emscripten_resources/emtests/test_zero_multiplication.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_zero_multiplication.wasm rename to tests/emscripten_resources/emtests/test_zero_multiplication.wasm diff --git a/lib/emscripten-tests/emtests/test_zerodiv.c b/tests/emscripten_resources/emtests/test_zerodiv.c similarity index 100% rename from lib/emscripten-tests/emtests/test_zerodiv.c rename to tests/emscripten_resources/emtests/test_zerodiv.c diff --git a/lib/emscripten-tests/emtests/test_zerodiv.out b/tests/emscripten_resources/emtests/test_zerodiv.out similarity index 100% rename from lib/emscripten-tests/emtests/test_zerodiv.out rename to tests/emscripten_resources/emtests/test_zerodiv.out diff --git a/lib/emscripten-tests/emtests/test_zerodiv.wasm b/tests/emscripten_resources/emtests/test_zerodiv.wasm similarity index 100% rename from lib/emscripten-tests/emtests/test_zerodiv.wasm rename to tests/emscripten_resources/emtests/test_zerodiv.wasm diff --git a/lib/emscripten-tests/src/tests/is_emscripten_false.wast b/tests/emscripten_resources/is_emscripten_false.wast similarity index 100% rename from lib/emscripten-tests/src/tests/is_emscripten_false.wast rename to tests/emscripten_resources/is_emscripten_false.wast diff --git a/lib/emscripten-tests/src/tests/is_emscripten_true.wast b/tests/emscripten_resources/is_emscripten_true.wast similarity index 100% rename from lib/emscripten-tests/src/tests/is_emscripten_true.wast rename to tests/emscripten_resources/is_emscripten_true.wast diff --git a/lib/emscripten-tests/tests/emtest.rs b/tests/emtest.rs similarity index 100% rename from lib/emscripten-tests/tests/emtest.rs rename to tests/emtest.rs diff --git a/lib/emscripten-tests/tests/emtests/_common.rs b/tests/emtests/_common.rs similarity index 100% rename from lib/emscripten-tests/tests/emtests/_common.rs rename to tests/emtests/_common.rs diff --git a/tests/emtests/clock_gettime.rs b/tests/emtests/clock_gettime.rs new file mode 100644 index 00000000000..63f34fc4c35 --- /dev/null +++ b/tests/emtests/clock_gettime.rs @@ -0,0 +1,9 @@ +#[test] +fn test_clock_gettime() { + assert_emscripten_output!( + "../emscripten_resources/emtests/clock_gettime.wasm", + "clock_gettime", + vec![], + "../emscripten_resources/emtests/clock_gettime.out" + ); +} diff --git a/lib/emscripten-tests/tests/emtests/emscripten_get_compiler_setting.rs b/tests/emtests/emscripten_get_compiler_setting.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/emscripten_get_compiler_setting.rs rename to tests/emtests/emscripten_get_compiler_setting.rs index df0f5283b76..a9bb2c9d7dc 100644 --- a/lib/emscripten-tests/tests/emtests/emscripten_get_compiler_setting.rs +++ b/tests/emtests/emscripten_get_compiler_setting.rs @@ -2,9 +2,9 @@ #[ignore] fn test_emscripten_get_compiler_setting() { assert_emscripten_output!( - "../../emtests/emscripten_get_compiler_setting.wasm", + "../emscripten_resources/emtests/emscripten_get_compiler_setting.wasm", "emscripten_get_compiler_setting", vec![], - "../../emtests/emscripten_get_compiler_setting.out" + "../emscripten_resources/emtests/emscripten_get_compiler_setting.out" ); } diff --git a/tests/emtests/env.rs b/tests/emtests/env.rs new file mode 100644 index 00000000000..c00e28e87da --- /dev/null +++ b/tests/emtests/env.rs @@ -0,0 +1,9 @@ +#[test] +fn test_env() { + assert_emscripten_output!( + "../emscripten_resources/emtests/env.wasm", + "env", + vec![], + "../emscripten_resources/emtests/env.out" + ); +} diff --git a/lib/emscripten-tests/tests/emtests/fs_exports.rs b/tests/emtests/fs_exports.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/fs_exports.rs rename to tests/emtests/fs_exports.rs index f915cf0717e..520da5e584c 100644 --- a/lib/emscripten-tests/tests/emtests/fs_exports.rs +++ b/tests/emtests/fs_exports.rs @@ -2,9 +2,9 @@ #[ignore] fn test_fs_exports() { assert_emscripten_output!( - "../../emtests/FS_exports.wasm", + "../emscripten_resources/emtests/FS_exports.wasm", "fs_exports", vec![], - "../../emtests/FS_exports.txt" + "../emscripten_resources/emtests/FS_exports.txt" ); } diff --git a/lib/emscripten-tests/tests/emtests/getvalue_setvalue.rs b/tests/emtests/getvalue_setvalue.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/getvalue_setvalue.rs rename to tests/emtests/getvalue_setvalue.rs index 8e7e1bcc42e..bd1836237e0 100644 --- a/lib/emscripten-tests/tests/emtests/getvalue_setvalue.rs +++ b/tests/emtests/getvalue_setvalue.rs @@ -2,9 +2,9 @@ #[ignore] fn test_getvalue_setvalue() { assert_emscripten_output!( - "../../emtests/getValue_setValue.wasm", + "../emscripten_resources/emtests/getValue_setValue.wasm", "getvalue_setvalue", vec![], - "../../emtests/getValue_setValue.txt" + "../emscripten_resources/emtests/getValue_setValue.txt" ); } diff --git a/lib/emscripten-tests/tests/emtests/legacy_exported_runtime_numbers.rs b/tests/emtests/legacy_exported_runtime_numbers.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/legacy_exported_runtime_numbers.rs rename to tests/emtests/legacy_exported_runtime_numbers.rs index 65cb9a690d4..53fe06fb03a 100644 --- a/lib/emscripten-tests/tests/emtests/legacy_exported_runtime_numbers.rs +++ b/tests/emtests/legacy_exported_runtime_numbers.rs @@ -2,9 +2,9 @@ #[ignore] fn test_legacy_exported_runtime_numbers() { assert_emscripten_output!( - "../../emtests/legacy_exported_runtime_numbers.wasm", + "../emscripten_resources/emtests/legacy_exported_runtime_numbers.wasm", "legacy_exported_runtime_numbers", vec![], - "../../emtests/legacy_exported_runtime_numbers.txt" + "../emscripten_resources/emtests/legacy_exported_runtime_numbers.txt" ); } diff --git a/tests/emtests/localtime.rs b/tests/emtests/localtime.rs new file mode 100644 index 00000000000..3ede051772a --- /dev/null +++ b/tests/emtests/localtime.rs @@ -0,0 +1,9 @@ +#[test] +fn test_localtime() { + assert_emscripten_output!( + "../emscripten_resources/emtests/localtime.wasm", + "localtime", + vec![], + "../emscripten_resources/emtests/localtime.out" + ); +} diff --git a/lib/emscripten-tests/tests/emtests/mod.rs b/tests/emtests/mod.rs similarity index 98% rename from lib/emscripten-tests/tests/emtests/mod.rs rename to tests/emtests/mod.rs index 64535122779..c63afcfd0a9 100644 --- a/lib/emscripten-tests/tests/emtests/mod.rs +++ b/tests/emtests/mod.rs @@ -1,4 +1,4 @@ -// Rust test file autogenerated with cargo build (build/emtests.rs). +// Rust test file autogenerated with cargo build (generate-emscripten-tests). // Please do NOT modify it by hand, as it will be reseted on next build. // The _common module is not autogenerated, as it provides common macros for the emtests diff --git a/lib/emscripten-tests/tests/emtests/modularize_closure_pre.rs b/tests/emtests/modularize_closure_pre.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/modularize_closure_pre.rs rename to tests/emtests/modularize_closure_pre.rs index a92b73ce81f..21cebbdbf55 100644 --- a/lib/emscripten-tests/tests/emtests/modularize_closure_pre.rs +++ b/tests/emtests/modularize_closure_pre.rs @@ -2,9 +2,9 @@ #[ignore] fn test_modularize_closure_pre() { assert_emscripten_output!( - "../../emtests/modularize_closure_pre.wasm", + "../emscripten_resources/emtests/modularize_closure_pre.wasm", "modularize_closure_pre", vec![], - "../../emtests/modularize_closure_pre.out" + "../emscripten_resources/emtests/modularize_closure_pre.out" ); } diff --git a/tests/emtests/printf.rs b/tests/emtests/printf.rs new file mode 100644 index 00000000000..a093a1a3222 --- /dev/null +++ b/tests/emtests/printf.rs @@ -0,0 +1,9 @@ +#[test] +fn test_printf() { + assert_emscripten_output!( + "../emscripten_resources/emtests/printf.wasm", + "printf", + vec![], + "../emscripten_resources/emtests/printf.out" + ); +} diff --git a/tests/emtests/puts.rs b/tests/emtests/puts.rs new file mode 100644 index 00000000000..900cadc9391 --- /dev/null +++ b/tests/emtests/puts.rs @@ -0,0 +1,9 @@ +#[test] +fn test_puts() { + assert_emscripten_output!( + "../emscripten_resources/emtests/puts.wasm", + "puts", + vec![], + "../emscripten_resources/emtests/puts.out" + ); +} diff --git a/lib/emscripten-tests/tests/emtests/stackalloc.rs b/tests/emtests/stackalloc.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/stackalloc.rs rename to tests/emtests/stackalloc.rs index 8c928945ca6..2c00b5547e5 100644 --- a/lib/emscripten-tests/tests/emtests/stackalloc.rs +++ b/tests/emtests/stackalloc.rs @@ -2,9 +2,9 @@ #[ignore] fn test_stackalloc() { assert_emscripten_output!( - "../../emtests/stackAlloc.wasm", + "../emscripten_resources/emtests/stackAlloc.wasm", "stackalloc", vec![], - "../../emtests/stackAlloc.txt" + "../emscripten_resources/emtests/stackAlloc.txt" ); } diff --git a/lib/emscripten-tests/tests/emtests/syscalls.rs b/tests/emtests/syscalls.rs similarity index 100% rename from lib/emscripten-tests/tests/emtests/syscalls.rs rename to tests/emtests/syscalls.rs diff --git a/tests/emtests/test_addr_of_stacked.rs b/tests/emtests/test_addr_of_stacked.rs new file mode 100644 index 00000000000..1883a4fba7c --- /dev/null +++ b/tests/emtests/test_addr_of_stacked.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_addr_of_stacked() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_addr_of_stacked.wasm", + "test_addr_of_stacked", + vec![], + "../emscripten_resources/emtests/test_addr_of_stacked.out" + ); +} diff --git a/tests/emtests/test_alloca.rs b/tests/emtests/test_alloca.rs new file mode 100644 index 00000000000..ee0683d9fec --- /dev/null +++ b/tests/emtests/test_alloca.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_alloca() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_alloca.wasm", + "test_alloca", + vec![], + "../emscripten_resources/emtests/test_alloca.out" + ); +} diff --git a/tests/emtests/test_alloca_stack.rs b/tests/emtests/test_alloca_stack.rs new file mode 100644 index 00000000000..6fe6797a214 --- /dev/null +++ b/tests/emtests/test_alloca_stack.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_alloca_stack() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_alloca_stack.wasm", + "test_alloca_stack", + vec![], + "../emscripten_resources/emtests/test_alloca_stack.out" + ); +} diff --git a/tests/emtests/test_array2.rs b/tests/emtests/test_array2.rs new file mode 100644 index 00000000000..53e916893f9 --- /dev/null +++ b/tests/emtests/test_array2.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_array2() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_array2.wasm", + "test_array2", + vec![], + "../emscripten_resources/emtests/test_array2.out" + ); +} diff --git a/tests/emtests/test_array2b.rs b/tests/emtests/test_array2b.rs new file mode 100644 index 00000000000..b60426f2de3 --- /dev/null +++ b/tests/emtests/test_array2b.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_array2b() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_array2b.wasm", + "test_array2b", + vec![], + "../emscripten_resources/emtests/test_array2b.out" + ); +} diff --git a/tests/emtests/test_atomic.rs b/tests/emtests/test_atomic.rs new file mode 100644 index 00000000000..5c9f44dfee0 --- /dev/null +++ b/tests/emtests/test_atomic.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_atomic() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_atomic.wasm", + "test_atomic", + vec![], + "../emscripten_resources/emtests/test_atomic.out" + ); +} diff --git a/tests/emtests/test_atox.rs b/tests/emtests/test_atox.rs new file mode 100644 index 00000000000..0e7bd0efd1e --- /dev/null +++ b/tests/emtests/test_atox.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_atox() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_atoX.wasm", + "test_atox", + vec![], + "../emscripten_resources/emtests/test_atoX.out" + ); +} diff --git a/tests/emtests/test_bsearch.rs b/tests/emtests/test_bsearch.rs new file mode 100644 index 00000000000..f5c6ba4288e --- /dev/null +++ b/tests/emtests/test_bsearch.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_bsearch() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_bsearch.wasm", + "test_bsearch", + vec![], + "../emscripten_resources/emtests/test_bsearch.out" + ); +} diff --git a/lib/emscripten-tests/tests/emtests/test_ccall.rs b/tests/emtests/test_ccall.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_ccall.rs rename to tests/emtests/test_ccall.rs index 37205b31dd3..459e69c09e0 100644 --- a/lib/emscripten-tests/tests/emtests/test_ccall.rs +++ b/tests/emtests/test_ccall.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_ccall() { assert_emscripten_output!( - "../../emtests/test_ccall.wasm", + "../emscripten_resources/emtests/test_ccall.wasm", "test_ccall", vec![], - "../../emtests/test_ccall.out" + "../emscripten_resources/emtests/test_ccall.out" ); } diff --git a/tests/emtests/test_complex.rs b/tests/emtests/test_complex.rs new file mode 100644 index 00000000000..d026c2c273f --- /dev/null +++ b/tests/emtests/test_complex.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_complex() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_complex.wasm", + "test_complex", + vec![], + "../emscripten_resources/emtests/test_complex.out" + ); +} diff --git a/lib/emscripten-tests/tests/emtests/test_demangle_stacks.rs b/tests/emtests/test_demangle_stacks.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_demangle_stacks.rs rename to tests/emtests/test_demangle_stacks.rs index e4ce4239842..0bd31dbcb40 100644 --- a/lib/emscripten-tests/tests/emtests/test_demangle_stacks.rs +++ b/tests/emtests/test_demangle_stacks.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_demangle_stacks() { assert_emscripten_output!( - "../../emtests/test_demangle_stacks.wasm", + "../emscripten_resources/emtests/test_demangle_stacks.wasm", "test_demangle_stacks", vec![], - "../../emtests/test_demangle_stacks.out" + "../emscripten_resources/emtests/test_demangle_stacks.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_demangle_stacks_noassert.rs b/tests/emtests/test_demangle_stacks_noassert.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_demangle_stacks_noassert.rs rename to tests/emtests/test_demangle_stacks_noassert.rs index 3346023a0b4..b4a1dbf5165 100644 --- a/lib/emscripten-tests/tests/emtests/test_demangle_stacks_noassert.rs +++ b/tests/emtests/test_demangle_stacks_noassert.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_demangle_stacks_noassert() { assert_emscripten_output!( - "../../emtests/test_demangle_stacks_noassert.wasm", + "../emscripten_resources/emtests/test_demangle_stacks_noassert.wasm", "test_demangle_stacks_noassert", vec![], - "../../emtests/test_demangle_stacks_noassert.out" + "../emscripten_resources/emtests/test_demangle_stacks_noassert.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_dlmalloc_partial_2.rs b/tests/emtests/test_dlmalloc_partial_2.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_dlmalloc_partial_2.rs rename to tests/emtests/test_dlmalloc_partial_2.rs index cc8866e48d1..6b97f917bba 100644 --- a/lib/emscripten-tests/tests/emtests/test_dlmalloc_partial_2.rs +++ b/tests/emtests/test_dlmalloc_partial_2.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_dlmalloc_partial_2() { assert_emscripten_output!( - "../../emtests/test_dlmalloc_partial_2.wasm", + "../emscripten_resources/emtests/test_dlmalloc_partial_2.wasm", "test_dlmalloc_partial_2", vec![], - "../../emtests/test_dlmalloc_partial_2.out" + "../emscripten_resources/emtests/test_dlmalloc_partial_2.out" ); } diff --git a/tests/emtests/test_double_varargs.rs b/tests/emtests/test_double_varargs.rs new file mode 100644 index 00000000000..556e65cae45 --- /dev/null +++ b/tests/emtests/test_double_varargs.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_double_varargs() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_double_varargs.wasm", + "test_double_varargs", + vec![], + "../emscripten_resources/emtests/test_double_varargs.out" + ); +} diff --git a/lib/emscripten-tests/tests/emtests/test_em_asm.rs b/tests/emtests/test_em_asm.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_em_asm.rs rename to tests/emtests/test_em_asm.rs index b58c6154ef5..182e23f0c64 100644 --- a/lib/emscripten-tests/tests/emtests/test_em_asm.rs +++ b/tests/emtests/test_em_asm.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_em_asm() { assert_emscripten_output!( - "../../emtests/test_em_asm.wasm", + "../emscripten_resources/emtests/test_em_asm.wasm", "test_em_asm", vec![], - "../../emtests/test_em_asm.out" + "../emscripten_resources/emtests/test_em_asm.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_em_asm_2.rs b/tests/emtests/test_em_asm_2.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_em_asm_2.rs rename to tests/emtests/test_em_asm_2.rs index c03369cbf00..4ee103579e9 100644 --- a/lib/emscripten-tests/tests/emtests/test_em_asm_2.rs +++ b/tests/emtests/test_em_asm_2.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_em_asm_2() { assert_emscripten_output!( - "../../emtests/test_em_asm_2.wasm", + "../emscripten_resources/emtests/test_em_asm_2.wasm", "test_em_asm_2", vec![], - "../../emtests/test_em_asm_2.out" + "../emscripten_resources/emtests/test_em_asm_2.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_em_asm_parameter_pack.rs b/tests/emtests/test_em_asm_parameter_pack.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_em_asm_parameter_pack.rs rename to tests/emtests/test_em_asm_parameter_pack.rs index 167fb96b1dc..420efc5ead2 100644 --- a/lib/emscripten-tests/tests/emtests/test_em_asm_parameter_pack.rs +++ b/tests/emtests/test_em_asm_parameter_pack.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_em_asm_parameter_pack() { assert_emscripten_output!( - "../../emtests/test_em_asm_parameter_pack.wasm", + "../emscripten_resources/emtests/test_em_asm_parameter_pack.wasm", "test_em_asm_parameter_pack", vec![], - "../../emtests/test_em_asm_parameter_pack.out" + "../emscripten_resources/emtests/test_em_asm_parameter_pack.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_em_asm_signatures.rs b/tests/emtests/test_em_asm_signatures.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_em_asm_signatures.rs rename to tests/emtests/test_em_asm_signatures.rs index 0f0431cdf46..d0470166d8a 100644 --- a/lib/emscripten-tests/tests/emtests/test_em_asm_signatures.rs +++ b/tests/emtests/test_em_asm_signatures.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_em_asm_signatures() { assert_emscripten_output!( - "../../emtests/test_em_asm_signatures.wasm", + "../emscripten_resources/emtests/test_em_asm_signatures.wasm", "test_em_asm_signatures", vec![], - "../../emtests/test_em_asm_signatures.out" + "../emscripten_resources/emtests/test_em_asm_signatures.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_em_asm_unicode.rs b/tests/emtests/test_em_asm_unicode.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_em_asm_unicode.rs rename to tests/emtests/test_em_asm_unicode.rs index 1f7c79e45b1..a00ae3b423a 100644 --- a/lib/emscripten-tests/tests/emtests/test_em_asm_unicode.rs +++ b/tests/emtests/test_em_asm_unicode.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_em_asm_unicode() { assert_emscripten_output!( - "../../emtests/test_em_asm_unicode.wasm", + "../emscripten_resources/emtests/test_em_asm_unicode.wasm", "test_em_asm_unicode", vec![], - "../../emtests/test_em_asm_unicode.out" + "../emscripten_resources/emtests/test_em_asm_unicode.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_em_asm_unused_arguments.rs b/tests/emtests/test_em_asm_unused_arguments.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_em_asm_unused_arguments.rs rename to tests/emtests/test_em_asm_unused_arguments.rs index e6bc2297806..3b7a0720689 100644 --- a/lib/emscripten-tests/tests/emtests/test_em_asm_unused_arguments.rs +++ b/tests/emtests/test_em_asm_unused_arguments.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_em_asm_unused_arguments() { assert_emscripten_output!( - "../../emtests/test_em_asm_unused_arguments.wasm", + "../emscripten_resources/emtests/test_em_asm_unused_arguments.wasm", "test_em_asm_unused_arguments", vec![], - "../../emtests/test_em_asm_unused_arguments.out" + "../emscripten_resources/emtests/test_em_asm_unused_arguments.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_em_js.rs b/tests/emtests/test_em_js.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_em_js.rs rename to tests/emtests/test_em_js.rs index 8818cc85d0a..ff4502c2ebb 100644 --- a/lib/emscripten-tests/tests/emtests/test_em_js.rs +++ b/tests/emtests/test_em_js.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_em_js() { assert_emscripten_output!( - "../../emtests/test_em_js.wasm", + "../emscripten_resources/emtests/test_em_js.wasm", "test_em_js", vec![], - "../../emtests/test_em_js.out" + "../emscripten_resources/emtests/test_em_js.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_emscripten_api.rs b/tests/emtests/test_emscripten_api.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_emscripten_api.rs rename to tests/emtests/test_emscripten_api.rs index 8226ebabab6..95d79e708f3 100644 --- a/lib/emscripten-tests/tests/emtests/test_emscripten_api.rs +++ b/tests/emtests/test_emscripten_api.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_emscripten_api() { assert_emscripten_output!( - "../../emtests/test_emscripten_api.wasm", + "../emscripten_resources/emtests/test_emscripten_api.wasm", "test_emscripten_api", vec![], - "../../emtests/test_emscripten_api.out" + "../emscripten_resources/emtests/test_emscripten_api.out" ); } diff --git a/tests/emtests/test_erf.rs b/tests/emtests/test_erf.rs new file mode 100644 index 00000000000..efc16ccb305 --- /dev/null +++ b/tests/emtests/test_erf.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_erf() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_erf.wasm", + "test_erf", + vec![], + "../emscripten_resources/emtests/test_erf.out" + ); +} diff --git a/tests/emtests/test_errar.rs b/tests/emtests/test_errar.rs new file mode 100644 index 00000000000..94238860c92 --- /dev/null +++ b/tests/emtests/test_errar.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_errar() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_errar.wasm", + "test_errar", + vec![], + "../emscripten_resources/emtests/test_errar.out" + ); +} diff --git a/lib/emscripten-tests/tests/emtests/test_exceptions_2.rs b/tests/emtests/test_exceptions_2.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_exceptions_2.rs rename to tests/emtests/test_exceptions_2.rs index 5503365104d..6360db35e88 100644 --- a/lib/emscripten-tests/tests/emtests/test_exceptions_2.rs +++ b/tests/emtests/test_exceptions_2.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_exceptions_2() { assert_emscripten_output!( - "../../emtests/test_exceptions_2.wasm", + "../emscripten_resources/emtests/test_exceptions_2.wasm", "test_exceptions_2", vec![], - "../../emtests/test_exceptions_2.out" + "../emscripten_resources/emtests/test_exceptions_2.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_exceptions_multi.rs b/tests/emtests/test_exceptions_multi.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_exceptions_multi.rs rename to tests/emtests/test_exceptions_multi.rs index d3b60c01b44..1a6c2880119 100644 --- a/lib/emscripten-tests/tests/emtests/test_exceptions_multi.rs +++ b/tests/emtests/test_exceptions_multi.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_exceptions_multi() { assert_emscripten_output!( - "../../emtests/test_exceptions_multi.wasm", + "../emscripten_resources/emtests/test_exceptions_multi.wasm", "test_exceptions_multi", vec![], - "../../emtests/test_exceptions_multi.out" + "../emscripten_resources/emtests/test_exceptions_multi.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_exceptions_std.rs b/tests/emtests/test_exceptions_std.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_exceptions_std.rs rename to tests/emtests/test_exceptions_std.rs index 571f20427ba..1003b60c38a 100644 --- a/lib/emscripten-tests/tests/emtests/test_exceptions_std.rs +++ b/tests/emtests/test_exceptions_std.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_exceptions_std() { assert_emscripten_output!( - "../../emtests/test_exceptions_std.wasm", + "../emscripten_resources/emtests/test_exceptions_std.wasm", "test_exceptions_std", vec![], - "../../emtests/test_exceptions_std.out" + "../emscripten_resources/emtests/test_exceptions_std.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_exceptions_white_list.rs b/tests/emtests/test_exceptions_white_list.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_exceptions_white_list.rs rename to tests/emtests/test_exceptions_white_list.rs index e5cdfb407e2..ce5db9ff5a7 100644 --- a/lib/emscripten-tests/tests/emtests/test_exceptions_white_list.rs +++ b/tests/emtests/test_exceptions_white_list.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_exceptions_white_list() { assert_emscripten_output!( - "../../emtests/test_exceptions_white_list.wasm", + "../emscripten_resources/emtests/test_exceptions_white_list.wasm", "test_exceptions_white_list", vec![], - "../../emtests/test_exceptions_white_list.out" + "../emscripten_resources/emtests/test_exceptions_white_list.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_execvp.rs b/tests/emtests/test_execvp.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_execvp.rs rename to tests/emtests/test_execvp.rs index 085e41d9ab7..2d60751a53b 100644 --- a/lib/emscripten-tests/tests/emtests/test_execvp.rs +++ b/tests/emtests/test_execvp.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_execvp() { assert_emscripten_output!( - "../../emtests/test_execvp.wasm", + "../emscripten_resources/emtests/test_execvp.wasm", "test_execvp", vec![], - "../../emtests/test_execvp.out" + "../emscripten_resources/emtests/test_execvp.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_fast_math.rs b/tests/emtests/test_fast_math.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_fast_math.rs rename to tests/emtests/test_fast_math.rs index 9a003045fbc..9a025d48c9f 100644 --- a/lib/emscripten-tests/tests/emtests/test_fast_math.rs +++ b/tests/emtests/test_fast_math.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_fast_math() { assert_emscripten_output!( - "../../emtests/test_fast_math.wasm", + "../emscripten_resources/emtests/test_fast_math.wasm", "test_fast_math", vec![], - "../../emtests/test_fast_math.out" + "../emscripten_resources/emtests/test_fast_math.out" ); } diff --git a/tests/emtests/test_flexarray_struct.rs b/tests/emtests/test_flexarray_struct.rs new file mode 100644 index 00000000000..922209a2cc5 --- /dev/null +++ b/tests/emtests/test_flexarray_struct.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_flexarray_struct() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_flexarray_struct.wasm", + "test_flexarray_struct", + vec![], + "../emscripten_resources/emtests/test_flexarray_struct.out" + ); +} diff --git a/tests/emtests/test_float32_precise.rs b/tests/emtests/test_float32_precise.rs new file mode 100644 index 00000000000..3fa808eb20b --- /dev/null +++ b/tests/emtests/test_float32_precise.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_float32_precise() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_float32_precise.wasm", + "test_float32_precise", + vec![], + "../emscripten_resources/emtests/test_float32_precise.out" + ); +} diff --git a/lib/emscripten-tests/tests/emtests/test_float_builtins.rs b/tests/emtests/test_float_builtins.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_float_builtins.rs rename to tests/emtests/test_float_builtins.rs index 51d5baced62..12045526708 100644 --- a/lib/emscripten-tests/tests/emtests/test_float_builtins.rs +++ b/tests/emtests/test_float_builtins.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_float_builtins() { assert_emscripten_output!( - "../../emtests/test_float_builtins.wasm", + "../emscripten_resources/emtests/test_float_builtins.wasm", "test_float_builtins", vec![], - "../../emtests/test_float_builtins.out" + "../emscripten_resources/emtests/test_float_builtins.out" ); } diff --git a/tests/emtests/test_frexp.rs b/tests/emtests/test_frexp.rs new file mode 100644 index 00000000000..43552c70222 --- /dev/null +++ b/tests/emtests/test_frexp.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_frexp() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_frexp.wasm", + "test_frexp", + vec![], + "../emscripten_resources/emtests/test_frexp.out" + ); +} diff --git a/tests/emtests/test_funcptr.rs b/tests/emtests/test_funcptr.rs new file mode 100644 index 00000000000..48f08bf9d5c --- /dev/null +++ b/tests/emtests/test_funcptr.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_funcptr() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_funcptr.wasm", + "test_funcptr", + vec![], + "../emscripten_resources/emtests/test_funcptr.out" + ); +} diff --git a/tests/emtests/test_funcptr_namecollide.rs b/tests/emtests/test_funcptr_namecollide.rs new file mode 100644 index 00000000000..794ece29326 --- /dev/null +++ b/tests/emtests/test_funcptr_namecollide.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_funcptr_namecollide() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_funcptr_namecollide.wasm", + "test_funcptr_namecollide", + vec![], + "../emscripten_resources/emtests/test_funcptr_namecollide.out" + ); +} diff --git a/tests/emtests/test_funcptrfunc.rs b/tests/emtests/test_funcptrfunc.rs new file mode 100644 index 00000000000..a9bbccd35e9 --- /dev/null +++ b/tests/emtests/test_funcptrfunc.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_funcptrfunc() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_funcptrfunc.wasm", + "test_funcptrfunc", + vec![], + "../emscripten_resources/emtests/test_funcptrfunc.out" + ); +} diff --git a/tests/emtests/test_funcs.rs b/tests/emtests/test_funcs.rs new file mode 100644 index 00000000000..bdd85b67510 --- /dev/null +++ b/tests/emtests/test_funcs.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_funcs() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_funcs.wasm", + "test_funcs", + vec![], + "../emscripten_resources/emtests/test_funcs.out" + ); +} diff --git a/tests/emtests/test_functionpointer_libfunc_varargs.rs b/tests/emtests/test_functionpointer_libfunc_varargs.rs new file mode 100644 index 00000000000..9e0e2402538 --- /dev/null +++ b/tests/emtests/test_functionpointer_libfunc_varargs.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_functionpointer_libfunc_varargs() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_functionpointer_libfunc_varargs.wasm", + "test_functionpointer_libfunc_varargs", + vec![], + "../emscripten_resources/emtests/test_functionpointer_libfunc_varargs.out" + ); +} diff --git a/tests/emtests/test_fwrite_0.rs b/tests/emtests/test_fwrite_0.rs new file mode 100644 index 00000000000..1ac0aa0e5b7 --- /dev/null +++ b/tests/emtests/test_fwrite_0.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_fwrite_0() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_fwrite_0.wasm", + "test_fwrite_0", + vec![], + "../emscripten_resources/emtests/test_fwrite_0.out" + ); +} diff --git a/tests/emtests/test_getcwd.rs b/tests/emtests/test_getcwd.rs new file mode 100644 index 00000000000..fd8012b2496 --- /dev/null +++ b/tests/emtests/test_getcwd.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_getcwd() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_getcwd.wasm", + "test_getcwd", + vec![], + "../emscripten_resources/emtests/test_getcwd.out" + ); +} diff --git a/tests/emtests/test_getgep.rs b/tests/emtests/test_getgep.rs new file mode 100644 index 00000000000..5a9cc8e3d7d --- /dev/null +++ b/tests/emtests/test_getgep.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_getgep() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_getgep.wasm", + "test_getgep", + vec![], + "../emscripten_resources/emtests/test_getgep.out" + ); +} diff --git a/lib/emscripten-tests/tests/emtests/test_getloadavg.rs b/tests/emtests/test_getloadavg.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_getloadavg.rs rename to tests/emtests/test_getloadavg.rs index 077fa5112fb..a94db0dd009 100644 --- a/lib/emscripten-tests/tests/emtests/test_getloadavg.rs +++ b/tests/emtests/test_getloadavg.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_getloadavg() { assert_emscripten_output!( - "../../emtests/test_getloadavg.wasm", + "../emscripten_resources/emtests/test_getloadavg.wasm", "test_getloadavg", vec![], - "../../emtests/test_getloadavg.out" + "../emscripten_resources/emtests/test_getloadavg.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_getopt.rs b/tests/emtests/test_getopt.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_getopt.rs rename to tests/emtests/test_getopt.rs index b8eed280fa3..6f2bf6bf785 100644 --- a/lib/emscripten-tests/tests/emtests/test_getopt.rs +++ b/tests/emtests/test_getopt.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_getopt() { assert_emscripten_output!( - "../../emtests/test_getopt.wasm", + "../emscripten_resources/emtests/test_getopt.wasm", "test_getopt", vec![], - "../../emtests/test_getopt.out" + "../emscripten_resources/emtests/test_getopt.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_getopt_long.rs b/tests/emtests/test_getopt_long.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_getopt_long.rs rename to tests/emtests/test_getopt_long.rs index 9ffb2be9e2a..06590b053f2 100644 --- a/lib/emscripten-tests/tests/emtests/test_getopt_long.rs +++ b/tests/emtests/test_getopt_long.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_getopt_long() { assert_emscripten_output!( - "../../emtests/test_getopt_long.wasm", + "../emscripten_resources/emtests/test_getopt_long.wasm", "test_getopt_long", vec![], - "../../emtests/test_getopt_long.out" + "../emscripten_resources/emtests/test_getopt_long.out" ); } diff --git a/tests/emtests/test_globaldoubles.rs b/tests/emtests/test_globaldoubles.rs new file mode 100644 index 00000000000..e8570263409 --- /dev/null +++ b/tests/emtests/test_globaldoubles.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_globaldoubles() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_globaldoubles.wasm", + "test_globaldoubles", + vec![], + "../emscripten_resources/emtests/test_globaldoubles.out" + ); +} diff --git a/tests/emtests/test_globals.rs b/tests/emtests/test_globals.rs new file mode 100644 index 00000000000..3edd9dee845 --- /dev/null +++ b/tests/emtests/test_globals.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_globals() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_globals.wasm", + "test_globals", + vec![], + "../emscripten_resources/emtests/test_globals.out" + ); +} diff --git a/lib/emscripten-tests/tests/emtests/test_gmtime.rs b/tests/emtests/test_gmtime.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_gmtime.rs rename to tests/emtests/test_gmtime.rs index 81fcc8fbdba..96f4c8c7d1d 100644 --- a/lib/emscripten-tests/tests/emtests/test_gmtime.rs +++ b/tests/emtests/test_gmtime.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_gmtime() { assert_emscripten_output!( - "../../emtests/test_gmtime.wasm", + "../emscripten_resources/emtests/test_gmtime.wasm", "test_gmtime", vec![], - "../../emtests/test_gmtime.out" + "../emscripten_resources/emtests/test_gmtime.out" ); } diff --git a/tests/emtests/test_hello_world.rs b/tests/emtests/test_hello_world.rs new file mode 100644 index 00000000000..32b28f25c60 --- /dev/null +++ b/tests/emtests/test_hello_world.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_hello_world() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_hello_world.wasm", + "test_hello_world", + vec![], + "../emscripten_resources/emtests/test_hello_world.out" + ); +} diff --git a/lib/emscripten-tests/tests/emtests/test_i16_emcc_intrinsic.rs b/tests/emtests/test_i16_emcc_intrinsic.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_i16_emcc_intrinsic.rs rename to tests/emtests/test_i16_emcc_intrinsic.rs index 84be78d8376..cc4b5d6c09c 100644 --- a/lib/emscripten-tests/tests/emtests/test_i16_emcc_intrinsic.rs +++ b/tests/emtests/test_i16_emcc_intrinsic.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_i16_emcc_intrinsic() { assert_emscripten_output!( - "../../emtests/test_i16_emcc_intrinsic.wasm", + "../emscripten_resources/emtests/test_i16_emcc_intrinsic.wasm", "test_i16_emcc_intrinsic", vec![], - "../../emtests/test_i16_emcc_intrinsic.out" + "../emscripten_resources/emtests/test_i16_emcc_intrinsic.out" ); } diff --git a/tests/emtests/test_i32_mul_precise.rs b/tests/emtests/test_i32_mul_precise.rs new file mode 100644 index 00000000000..92c2b6bf683 --- /dev/null +++ b/tests/emtests/test_i32_mul_precise.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_i32_mul_precise() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_i32_mul_precise.wasm", + "test_i32_mul_precise", + vec![], + "../emscripten_resources/emtests/test_i32_mul_precise.out" + ); +} diff --git a/lib/emscripten-tests/tests/emtests/test_i64.rs b/tests/emtests/test_i64.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_i64.rs rename to tests/emtests/test_i64.rs index b540bbf882e..7b6c1cdc8d8 100644 --- a/lib/emscripten-tests/tests/emtests/test_i64.rs +++ b/tests/emtests/test_i64.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_i64() { assert_emscripten_output!( - "../../emtests/test_i64.wasm", + "../emscripten_resources/emtests/test_i64.wasm", "test_i64", vec![], - "../../emtests/test_i64.out" + "../emscripten_resources/emtests/test_i64.out" ); } diff --git a/tests/emtests/test_i64_4.rs b/tests/emtests/test_i64_4.rs new file mode 100644 index 00000000000..394f0edd301 --- /dev/null +++ b/tests/emtests/test_i64_4.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_i64_4() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_i64_4.wasm", + "test_i64_4", + vec![], + "../emscripten_resources/emtests/test_i64_4.out" + ); +} diff --git a/lib/emscripten-tests/tests/emtests/test_i64_7z.rs b/tests/emtests/test_i64_7z.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_i64_7z.rs rename to tests/emtests/test_i64_7z.rs index 87cec8e6953..4e76c919f33 100644 --- a/lib/emscripten-tests/tests/emtests/test_i64_7z.rs +++ b/tests/emtests/test_i64_7z.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_i64_7z() { assert_emscripten_output!( - "../../emtests/test_i64_7z.wasm", + "../emscripten_resources/emtests/test_i64_7z.wasm", "test_i64_7z", vec![], - "../../emtests/test_i64_7z.out" + "../emscripten_resources/emtests/test_i64_7z.out" ); } diff --git a/tests/emtests/test_i64_cmp2.rs b/tests/emtests/test_i64_cmp2.rs new file mode 100644 index 00000000000..4ba994da47e --- /dev/null +++ b/tests/emtests/test_i64_cmp2.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_i64_cmp2() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_i64_cmp2.wasm", + "test_i64_cmp2", + vec![], + "../emscripten_resources/emtests/test_i64_cmp2.out" + ); +} diff --git a/tests/emtests/test_i64_i16.rs b/tests/emtests/test_i64_i16.rs new file mode 100644 index 00000000000..32a98a6335e --- /dev/null +++ b/tests/emtests/test_i64_i16.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_i64_i16() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_i64_i16.wasm", + "test_i64_i16", + vec![], + "../emscripten_resources/emtests/test_i64_i16.out" + ); +} diff --git a/tests/emtests/test_i64_llabs.rs b/tests/emtests/test_i64_llabs.rs new file mode 100644 index 00000000000..babf82e37ac --- /dev/null +++ b/tests/emtests/test_i64_llabs.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_i64_llabs() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_i64_llabs.wasm", + "test_i64_llabs", + vec![], + "../emscripten_resources/emtests/test_i64_llabs.out" + ); +} diff --git a/tests/emtests/test_i64_precise.rs b/tests/emtests/test_i64_precise.rs new file mode 100644 index 00000000000..4ed397f2123 --- /dev/null +++ b/tests/emtests/test_i64_precise.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_i64_precise() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_i64_precise.wasm", + "test_i64_precise", + vec![], + "../emscripten_resources/emtests/test_i64_precise.out" + ); +} diff --git a/tests/emtests/test_i64_precise_needed.rs b/tests/emtests/test_i64_precise_needed.rs new file mode 100644 index 00000000000..01eefaeb334 --- /dev/null +++ b/tests/emtests/test_i64_precise_needed.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_i64_precise_needed() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_i64_precise_needed.wasm", + "test_i64_precise_needed", + vec![], + "../emscripten_resources/emtests/test_i64_precise_needed.out" + ); +} diff --git a/tests/emtests/test_i64_precise_unneeded.rs b/tests/emtests/test_i64_precise_unneeded.rs new file mode 100644 index 00000000000..4f8815bc56e --- /dev/null +++ b/tests/emtests/test_i64_precise_unneeded.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_i64_precise_unneeded() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_i64_precise_unneeded.wasm", + "test_i64_precise_unneeded", + vec![], + "../emscripten_resources/emtests/test_i64_precise_unneeded.out" + ); +} diff --git a/tests/emtests/test_i64_qdouble.rs b/tests/emtests/test_i64_qdouble.rs new file mode 100644 index 00000000000..dae1f36bfd0 --- /dev/null +++ b/tests/emtests/test_i64_qdouble.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_i64_qdouble() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_i64_qdouble.wasm", + "test_i64_qdouble", + vec![], + "../emscripten_resources/emtests/test_i64_qdouble.out" + ); +} diff --git a/tests/emtests/test_i64_umul.rs b/tests/emtests/test_i64_umul.rs new file mode 100644 index 00000000000..8eb16c6966e --- /dev/null +++ b/tests/emtests/test_i64_umul.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_i64_umul() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_i64_umul.wasm", + "test_i64_umul", + vec![], + "../emscripten_resources/emtests/test_i64_umul.out" + ); +} diff --git a/lib/emscripten-tests/tests/emtests/test_i64_varargs.rs b/tests/emtests/test_i64_varargs.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_i64_varargs.rs rename to tests/emtests/test_i64_varargs.rs index e0558ff7596..6a8c2549209 100644 --- a/lib/emscripten-tests/tests/emtests/test_i64_varargs.rs +++ b/tests/emtests/test_i64_varargs.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_i64_varargs() { assert_emscripten_output!( - "../../emtests/test_i64_varargs.wasm", + "../emscripten_resources/emtests/test_i64_varargs.wasm", "test_i64_varargs", vec![], - "../../emtests/test_i64_varargs.out" + "../emscripten_resources/emtests/test_i64_varargs.out" ); } diff --git a/tests/emtests/test_i64_zextneg.rs b/tests/emtests/test_i64_zextneg.rs new file mode 100644 index 00000000000..0f090ef9a1f --- /dev/null +++ b/tests/emtests/test_i64_zextneg.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_i64_zextneg() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_i64_zextneg.wasm", + "test_i64_zextneg", + vec![], + "../emscripten_resources/emtests/test_i64_zextneg.out" + ); +} diff --git a/tests/emtests/test_if.rs b/tests/emtests/test_if.rs new file mode 100644 index 00000000000..b0204454e18 --- /dev/null +++ b/tests/emtests/test_if.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_if() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_if.wasm", + "test_if", + vec![], + "../emscripten_resources/emtests/test_if.out" + ); +} diff --git a/tests/emtests/test_if_else.rs b/tests/emtests/test_if_else.rs new file mode 100644 index 00000000000..7f7eed1d90d --- /dev/null +++ b/tests/emtests/test_if_else.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_if_else() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_if_else.wasm", + "test_if_else", + vec![], + "../emscripten_resources/emtests/test_if_else.out" + ); +} diff --git a/tests/emtests/test_indirectbr.rs b/tests/emtests/test_indirectbr.rs new file mode 100644 index 00000000000..a02864e17b2 --- /dev/null +++ b/tests/emtests/test_indirectbr.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_indirectbr() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_indirectbr.wasm", + "test_indirectbr", + vec![], + "../emscripten_resources/emtests/test_indirectbr.out" + ); +} diff --git a/lib/emscripten-tests/tests/emtests/test_indirectbr_many.rs b/tests/emtests/test_indirectbr_many.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_indirectbr_many.rs rename to tests/emtests/test_indirectbr_many.rs index a96fe213816..6deddfc0f65 100644 --- a/lib/emscripten-tests/tests/emtests/test_indirectbr_many.rs +++ b/tests/emtests/test_indirectbr_many.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_indirectbr_many() { assert_emscripten_output!( - "../../emtests/test_indirectbr_many.wasm", + "../emscripten_resources/emtests/test_indirectbr_many.wasm", "test_indirectbr_many", vec![], - "../../emtests/test_indirectbr_many.out" + "../emscripten_resources/emtests/test_indirectbr_many.out" ); } diff --git a/tests/emtests/test_isnan.rs b/tests/emtests/test_isnan.rs new file mode 100644 index 00000000000..d33419f4a67 --- /dev/null +++ b/tests/emtests/test_isnan.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_isnan() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_isnan.wasm", + "test_isnan", + vec![], + "../emscripten_resources/emtests/test_isnan.out" + ); +} diff --git a/tests/emtests/test_libcextra.rs b/tests/emtests/test_libcextra.rs new file mode 100644 index 00000000000..ea5381c973a --- /dev/null +++ b/tests/emtests/test_libcextra.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_libcextra() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_libcextra.wasm", + "test_libcextra", + vec![], + "../emscripten_resources/emtests/test_libcextra.out" + ); +} diff --git a/tests/emtests/test_libgen.rs b/tests/emtests/test_libgen.rs new file mode 100644 index 00000000000..89489d4ae7e --- /dev/null +++ b/tests/emtests/test_libgen.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_libgen() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_libgen.wasm", + "test_libgen", + vec![], + "../emscripten_resources/emtests/test_libgen.out" + ); +} diff --git a/tests/emtests/test_literal_negative_zero.rs b/tests/emtests/test_literal_negative_zero.rs new file mode 100644 index 00000000000..3a02206aa4e --- /dev/null +++ b/tests/emtests/test_literal_negative_zero.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_literal_negative_zero() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_literal_negative_zero.wasm", + "test_literal_negative_zero", + vec![], + "../emscripten_resources/emtests/test_literal_negative_zero.out" + ); +} diff --git a/tests/emtests/test_llrint.rs b/tests/emtests/test_llrint.rs new file mode 100644 index 00000000000..4c6114fad6e --- /dev/null +++ b/tests/emtests/test_llrint.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_llrint() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_llrint.wasm", + "test_llrint", + vec![], + "../emscripten_resources/emtests/test_llrint.out" + ); +} diff --git a/tests/emtests/test_llvm_fabs.rs b/tests/emtests/test_llvm_fabs.rs new file mode 100644 index 00000000000..33c2cb183d8 --- /dev/null +++ b/tests/emtests/test_llvm_fabs.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_llvm_fabs() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_llvm_fabs.wasm", + "test_llvm_fabs", + vec![], + "../emscripten_resources/emtests/test_llvm_fabs.out" + ); +} diff --git a/lib/emscripten-tests/tests/emtests/test_llvm_intrinsics.rs b/tests/emtests/test_llvm_intrinsics.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_llvm_intrinsics.rs rename to tests/emtests/test_llvm_intrinsics.rs index 95a9e8ce324..3227d71cc5c 100644 --- a/lib/emscripten-tests/tests/emtests/test_llvm_intrinsics.rs +++ b/tests/emtests/test_llvm_intrinsics.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_llvm_intrinsics() { assert_emscripten_output!( - "../../emtests/test_llvm_intrinsics.wasm", + "../emscripten_resources/emtests/test_llvm_intrinsics.wasm", "test_llvm_intrinsics", vec![], - "../../emtests/test_llvm_intrinsics.out" + "../emscripten_resources/emtests/test_llvm_intrinsics.out" ); } diff --git a/tests/emtests/test_llvmswitch.rs b/tests/emtests/test_llvmswitch.rs new file mode 100644 index 00000000000..5a0dfa058e7 --- /dev/null +++ b/tests/emtests/test_llvmswitch.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_llvmswitch() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_llvmswitch.wasm", + "test_llvmswitch", + vec![], + "../emscripten_resources/emtests/test_llvmswitch.out" + ); +} diff --git a/tests/emtests/test_longjmp.rs b/tests/emtests/test_longjmp.rs new file mode 100644 index 00000000000..67b76c7049b --- /dev/null +++ b/tests/emtests/test_longjmp.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_longjmp() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_longjmp.wasm", + "test_longjmp", + vec![], + "../emscripten_resources/emtests/test_longjmp.out" + ); +} diff --git a/tests/emtests/test_longjmp2.rs b/tests/emtests/test_longjmp2.rs new file mode 100644 index 00000000000..3eeb77899cc --- /dev/null +++ b/tests/emtests/test_longjmp2.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_longjmp2() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_longjmp2.wasm", + "test_longjmp2", + vec![], + "../emscripten_resources/emtests/test_longjmp2.out" + ); +} diff --git a/tests/emtests/test_longjmp3.rs b/tests/emtests/test_longjmp3.rs new file mode 100644 index 00000000000..c878374ba80 --- /dev/null +++ b/tests/emtests/test_longjmp3.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_longjmp3() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_longjmp3.wasm", + "test_longjmp3", + vec![], + "../emscripten_resources/emtests/test_longjmp3.out" + ); +} diff --git a/tests/emtests/test_longjmp4.rs b/tests/emtests/test_longjmp4.rs new file mode 100644 index 00000000000..7a05e16372b --- /dev/null +++ b/tests/emtests/test_longjmp4.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_longjmp4() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_longjmp4.wasm", + "test_longjmp4", + vec![], + "../emscripten_resources/emtests/test_longjmp4.out" + ); +} diff --git a/lib/emscripten-tests/tests/emtests/test_longjmp_exc.rs b/tests/emtests/test_longjmp_exc.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_longjmp_exc.rs rename to tests/emtests/test_longjmp_exc.rs index bdf66309496..1fac03a3e56 100644 --- a/lib/emscripten-tests/tests/emtests/test_longjmp_exc.rs +++ b/tests/emtests/test_longjmp_exc.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_longjmp_exc() { assert_emscripten_output!( - "../../emtests/test_longjmp_exc.wasm", + "../emscripten_resources/emtests/test_longjmp_exc.wasm", "test_longjmp_exc", vec![], - "../../emtests/test_longjmp_exc.out" + "../emscripten_resources/emtests/test_longjmp_exc.out" ); } diff --git a/tests/emtests/test_longjmp_funcptr.rs b/tests/emtests/test_longjmp_funcptr.rs new file mode 100644 index 00000000000..e2a127d2697 --- /dev/null +++ b/tests/emtests/test_longjmp_funcptr.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_longjmp_funcptr() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_longjmp_funcptr.wasm", + "test_longjmp_funcptr", + vec![], + "../emscripten_resources/emtests/test_longjmp_funcptr.out" + ); +} diff --git a/tests/emtests/test_longjmp_repeat.rs b/tests/emtests/test_longjmp_repeat.rs new file mode 100644 index 00000000000..7f2f27b8eeb --- /dev/null +++ b/tests/emtests/test_longjmp_repeat.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_longjmp_repeat() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_longjmp_repeat.wasm", + "test_longjmp_repeat", + vec![], + "../emscripten_resources/emtests/test_longjmp_repeat.out" + ); +} diff --git a/tests/emtests/test_longjmp_stacked.rs b/tests/emtests/test_longjmp_stacked.rs new file mode 100644 index 00000000000..4d2fddd4d84 --- /dev/null +++ b/tests/emtests/test_longjmp_stacked.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_longjmp_stacked() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_longjmp_stacked.wasm", + "test_longjmp_stacked", + vec![], + "../emscripten_resources/emtests/test_longjmp_stacked.out" + ); +} diff --git a/tests/emtests/test_longjmp_throw.rs b/tests/emtests/test_longjmp_throw.rs new file mode 100644 index 00000000000..15b382f05eb --- /dev/null +++ b/tests/emtests/test_longjmp_throw.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_longjmp_throw() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_longjmp_throw.wasm", + "test_longjmp_throw", + vec![], + "../emscripten_resources/emtests/test_longjmp_throw.out" + ); +} diff --git a/tests/emtests/test_longjmp_unwind.rs b/tests/emtests/test_longjmp_unwind.rs new file mode 100644 index 00000000000..0c9780c415d --- /dev/null +++ b/tests/emtests/test_longjmp_unwind.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_longjmp_unwind() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_longjmp_unwind.wasm", + "test_longjmp_unwind", + vec![], + "../emscripten_resources/emtests/test_longjmp_unwind.out" + ); +} diff --git a/tests/emtests/test_loop.rs b/tests/emtests/test_loop.rs new file mode 100644 index 00000000000..c6c61ffd98e --- /dev/null +++ b/tests/emtests/test_loop.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_loop() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_loop.wasm", + "test_loop", + vec![], + "../emscripten_resources/emtests/test_loop.out" + ); +} diff --git a/lib/emscripten-tests/tests/emtests/test_lower_intrinsics.rs b/tests/emtests/test_lower_intrinsics.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_lower_intrinsics.rs rename to tests/emtests/test_lower_intrinsics.rs index 118e537baa9..a5aa51c7992 100644 --- a/lib/emscripten-tests/tests/emtests/test_lower_intrinsics.rs +++ b/tests/emtests/test_lower_intrinsics.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_lower_intrinsics() { assert_emscripten_output!( - "../../emtests/test_lower_intrinsics.wasm", + "../emscripten_resources/emtests/test_lower_intrinsics.wasm", "test_lower_intrinsics", vec![], - "../../emtests/test_lower_intrinsics.out" + "../emscripten_resources/emtests/test_lower_intrinsics.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_main_thread_async_em_asm.rs b/tests/emtests/test_main_thread_async_em_asm.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_main_thread_async_em_asm.rs rename to tests/emtests/test_main_thread_async_em_asm.rs index dae6da6e782..a76fbd4b86b 100644 --- a/lib/emscripten-tests/tests/emtests/test_main_thread_async_em_asm.rs +++ b/tests/emtests/test_main_thread_async_em_asm.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_main_thread_async_em_asm() { assert_emscripten_output!( - "../../emtests/test_main_thread_async_em_asm.wasm", + "../emscripten_resources/emtests/test_main_thread_async_em_asm.wasm", "test_main_thread_async_em_asm", vec![], - "../../emtests/test_main_thread_async_em_asm.out" + "../emscripten_resources/emtests/test_main_thread_async_em_asm.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_mainenv.rs b/tests/emtests/test_mainenv.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_mainenv.rs rename to tests/emtests/test_mainenv.rs index 54d04e86542..9ce01773166 100644 --- a/lib/emscripten-tests/tests/emtests/test_mainenv.rs +++ b/tests/emtests/test_mainenv.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_mainenv() { assert_emscripten_output!( - "../../emtests/test_mainenv.wasm", + "../emscripten_resources/emtests/test_mainenv.wasm", "test_mainenv", vec![], - "../../emtests/test_mainenv.out" + "../emscripten_resources/emtests/test_mainenv.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_mathfuncptr.rs b/tests/emtests/test_mathfuncptr.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_mathfuncptr.rs rename to tests/emtests/test_mathfuncptr.rs index 28e80ef0d94..32da526b5a6 100644 --- a/lib/emscripten-tests/tests/emtests/test_mathfuncptr.rs +++ b/tests/emtests/test_mathfuncptr.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_mathfuncptr() { assert_emscripten_output!( - "../../emtests/test_mathfuncptr.wasm", + "../emscripten_resources/emtests/test_mathfuncptr.wasm", "test_mathfuncptr", vec![], - "../../emtests/test_mathfuncptr.out" + "../emscripten_resources/emtests/test_mathfuncptr.out" ); } diff --git a/tests/emtests/test_memcpy2.rs b/tests/emtests/test_memcpy2.rs new file mode 100644 index 00000000000..972d7b4542f --- /dev/null +++ b/tests/emtests/test_memcpy2.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_memcpy2() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_memcpy2.wasm", + "test_memcpy2", + vec![], + "../emscripten_resources/emtests/test_memcpy2.out" + ); +} diff --git a/tests/emtests/test_memcpy3.rs b/tests/emtests/test_memcpy3.rs new file mode 100644 index 00000000000..982a46dfd00 --- /dev/null +++ b/tests/emtests/test_memcpy3.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_memcpy3() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_memcpy3.wasm", + "test_memcpy3", + vec![], + "../emscripten_resources/emtests/test_memcpy3.out" + ); +} diff --git a/lib/emscripten-tests/tests/emtests/test_memcpy_memcmp.rs b/tests/emtests/test_memcpy_memcmp.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_memcpy_memcmp.rs rename to tests/emtests/test_memcpy_memcmp.rs index 3e8c4ba7833..b45858f5ce7 100644 --- a/lib/emscripten-tests/tests/emtests/test_memcpy_memcmp.rs +++ b/tests/emtests/test_memcpy_memcmp.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_memcpy_memcmp() { assert_emscripten_output!( - "../../emtests/test_memcpy_memcmp.wasm", + "../emscripten_resources/emtests/test_memcpy_memcmp.wasm", "test_memcpy_memcmp", vec![], - "../../emtests/test_memcpy_memcmp.out" + "../emscripten_resources/emtests/test_memcpy_memcmp.out" ); } diff --git a/tests/emtests/test_memmove.rs b/tests/emtests/test_memmove.rs new file mode 100644 index 00000000000..f839203a044 --- /dev/null +++ b/tests/emtests/test_memmove.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_memmove() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_memmove.wasm", + "test_memmove", + vec![], + "../emscripten_resources/emtests/test_memmove.out" + ); +} diff --git a/tests/emtests/test_memmove2.rs b/tests/emtests/test_memmove2.rs new file mode 100644 index 00000000000..7230e0525db --- /dev/null +++ b/tests/emtests/test_memmove2.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_memmove2() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_memmove2.wasm", + "test_memmove2", + vec![], + "../emscripten_resources/emtests/test_memmove2.out" + ); +} diff --git a/tests/emtests/test_memmove3.rs b/tests/emtests/test_memmove3.rs new file mode 100644 index 00000000000..2b746ee7ede --- /dev/null +++ b/tests/emtests/test_memmove3.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_memmove3() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_memmove3.wasm", + "test_memmove3", + vec![], + "../emscripten_resources/emtests/test_memmove3.out" + ); +} diff --git a/tests/emtests/test_memset.rs b/tests/emtests/test_memset.rs new file mode 100644 index 00000000000..ea9df5bdac8 --- /dev/null +++ b/tests/emtests/test_memset.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_memset() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_memset.wasm", + "test_memset", + vec![], + "../emscripten_resources/emtests/test_memset.out" + ); +} diff --git a/lib/emscripten-tests/tests/emtests/test_mmap.rs b/tests/emtests/test_mmap.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_mmap.rs rename to tests/emtests/test_mmap.rs index 65fcfb6ae4a..6373983216e 100644 --- a/lib/emscripten-tests/tests/emtests/test_mmap.rs +++ b/tests/emtests/test_mmap.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_mmap() { assert_emscripten_output!( - "../../emtests/test_mmap.wasm", + "../emscripten_resources/emtests/test_mmap.wasm", "test_mmap", vec![], - "../../emtests/test_mmap.out" + "../emscripten_resources/emtests/test_mmap.out" ); } diff --git a/tests/emtests/test_negative_zero.rs b/tests/emtests/test_negative_zero.rs new file mode 100644 index 00000000000..1cedcf0a952 --- /dev/null +++ b/tests/emtests/test_negative_zero.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_negative_zero() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_negative_zero.wasm", + "test_negative_zero", + vec![], + "../emscripten_resources/emtests/test_negative_zero.out" + ); +} diff --git a/tests/emtests/test_nested_struct_varargs.rs b/tests/emtests/test_nested_struct_varargs.rs new file mode 100644 index 00000000000..3ccbebdc530 --- /dev/null +++ b/tests/emtests/test_nested_struct_varargs.rs @@ -0,0 +1,9 @@ +#[test] +fn test_test_nested_struct_varargs() { + assert_emscripten_output!( + "../emscripten_resources/emtests/test_nested_struct_varargs.wasm", + "test_nested_struct_varargs", + vec![], + "../emscripten_resources/emtests/test_nested_struct_varargs.out" + ); +} diff --git a/lib/emscripten-tests/tests/emtests/test_nl_types.rs b/tests/emtests/test_nl_types.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_nl_types.rs rename to tests/emtests/test_nl_types.rs index 68b81c56218..0fa1df5427f 100644 --- a/lib/emscripten-tests/tests/emtests/test_nl_types.rs +++ b/tests/emtests/test_nl_types.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_nl_types() { assert_emscripten_output!( - "../../emtests/test_nl_types.wasm", + "../emscripten_resources/emtests/test_nl_types.wasm", "test_nl_types", vec![], - "../../emtests/test_nl_types.out" + "../emscripten_resources/emtests/test_nl_types.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_perrar.rs b/tests/emtests/test_perrar.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_perrar.rs rename to tests/emtests/test_perrar.rs index 96f491f493e..e63840b3544 100644 --- a/lib/emscripten-tests/tests/emtests/test_perrar.rs +++ b/tests/emtests/test_perrar.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_perrar() { assert_emscripten_output!( - "../../emtests/test_perrar.wasm", + "../emscripten_resources/emtests/test_perrar.wasm", "test_perrar", vec![], - "../../emtests/test_perrar.out" + "../emscripten_resources/emtests/test_perrar.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_phiundef.rs b/tests/emtests/test_phiundef.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_phiundef.rs rename to tests/emtests/test_phiundef.rs index e3cba2c0f8d..a64ee38f806 100644 --- a/lib/emscripten-tests/tests/emtests/test_phiundef.rs +++ b/tests/emtests/test_phiundef.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_phiundef() { assert_emscripten_output!( - "../../emtests/test_phiundef.wasm", + "../emscripten_resources/emtests/test_phiundef.wasm", "test_phiundef", vec![], - "../../emtests/test_phiundef.out" + "../emscripten_resources/emtests/test_phiundef.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_pipe.rs b/tests/emtests/test_pipe.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_pipe.rs rename to tests/emtests/test_pipe.rs index e7caee28b90..3f54695f1a6 100644 --- a/lib/emscripten-tests/tests/emtests/test_pipe.rs +++ b/tests/emtests/test_pipe.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_pipe() { assert_emscripten_output!( - "../../emtests/test_pipe.wasm", + "../emscripten_resources/emtests/test_pipe.wasm", "test_pipe", vec![], - "../../emtests/test_pipe.out" + "../emscripten_resources/emtests/test_pipe.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_poll.rs b/tests/emtests/test_poll.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_poll.rs rename to tests/emtests/test_poll.rs index b23969a5870..261490787d2 100644 --- a/lib/emscripten-tests/tests/emtests/test_poll.rs +++ b/tests/emtests/test_poll.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_poll() { assert_emscripten_output!( - "../../emtests/test_poll.wasm", + "../emscripten_resources/emtests/test_poll.wasm", "test_poll", vec![], - "../../emtests/test_poll.out" + "../emscripten_resources/emtests/test_poll.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_posixtime.rs b/tests/emtests/test_posixtime.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_posixtime.rs rename to tests/emtests/test_posixtime.rs index 29602724dbc..d7fde99d967 100644 --- a/lib/emscripten-tests/tests/emtests/test_posixtime.rs +++ b/tests/emtests/test_posixtime.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_posixtime() { assert_emscripten_output!( - "../../emtests/test_posixtime.wasm", + "../emscripten_resources/emtests/test_posixtime.wasm", "test_posixtime", vec![], - "../../emtests/test_posixtime.out" + "../emscripten_resources/emtests/test_posixtime.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_printf_2.rs b/tests/emtests/test_printf_2.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_printf_2.rs rename to tests/emtests/test_printf_2.rs index ac15139bfcd..12e59941efb 100644 --- a/lib/emscripten-tests/tests/emtests/test_printf_2.rs +++ b/tests/emtests/test_printf_2.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_printf_2() { assert_emscripten_output!( - "../../emtests/test_printf_2.wasm", + "../emscripten_resources/emtests/test_printf_2.wasm", "test_printf_2", vec![], - "../../emtests/test_printf_2.out" + "../emscripten_resources/emtests/test_printf_2.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_printf_more.rs b/tests/emtests/test_printf_more.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_printf_more.rs rename to tests/emtests/test_printf_more.rs index b1e4fc00f4a..7d5c75023c6 100644 --- a/lib/emscripten-tests/tests/emtests/test_printf_more.rs +++ b/tests/emtests/test_printf_more.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_printf_more() { assert_emscripten_output!( - "../../emtests/test_printf_more.wasm", + "../emscripten_resources/emtests/test_printf_more.wasm", "test_printf_more", vec![], - "../../emtests/test_printf_more.out" + "../emscripten_resources/emtests/test_printf_more.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_regex.rs b/tests/emtests/test_regex.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_regex.rs rename to tests/emtests/test_regex.rs index ae65d8ef954..ca1004ea41d 100644 --- a/lib/emscripten-tests/tests/emtests/test_regex.rs +++ b/tests/emtests/test_regex.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_regex() { assert_emscripten_output!( - "../../emtests/test_regex.wasm", + "../emscripten_resources/emtests/test_regex.wasm", "test_regex", vec![], - "../../emtests/test_regex.out" + "../emscripten_resources/emtests/test_regex.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_relocatable_void_function.rs b/tests/emtests/test_relocatable_void_function.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_relocatable_void_function.rs rename to tests/emtests/test_relocatable_void_function.rs index 77dda77ba39..7f8dbdf70a2 100644 --- a/lib/emscripten-tests/tests/emtests/test_relocatable_void_function.rs +++ b/tests/emtests/test_relocatable_void_function.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_relocatable_void_function() { assert_emscripten_output!( - "../../emtests/test_relocatable_void_function.wasm", + "../emscripten_resources/emtests/test_relocatable_void_function.wasm", "test_relocatable_void_function", vec![], - "../../emtests/test_relocatable_void_function.out" + "../emscripten_resources/emtests/test_relocatable_void_function.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_rounding.rs b/tests/emtests/test_rounding.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_rounding.rs rename to tests/emtests/test_rounding.rs index cbe0a8ff577..4b7ea15408c 100644 --- a/lib/emscripten-tests/tests/emtests/test_rounding.rs +++ b/tests/emtests/test_rounding.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_rounding() { assert_emscripten_output!( - "../../emtests/test_rounding.wasm", + "../emscripten_resources/emtests/test_rounding.wasm", "test_rounding", vec![], - "../../emtests/test_rounding.out" + "../emscripten_resources/emtests/test_rounding.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_set_align.rs b/tests/emtests/test_set_align.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_set_align.rs rename to tests/emtests/test_set_align.rs index 47aa7c3dd19..602c7931f2d 100644 --- a/lib/emscripten-tests/tests/emtests/test_set_align.rs +++ b/tests/emtests/test_set_align.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_set_align() { assert_emscripten_output!( - "../../emtests/test_set_align.wasm", + "../emscripten_resources/emtests/test_set_align.wasm", "test_set_align", vec![], - "../../emtests/test_set_align.out" + "../emscripten_resources/emtests/test_set_align.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_siglongjmp.rs b/tests/emtests/test_siglongjmp.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_siglongjmp.rs rename to tests/emtests/test_siglongjmp.rs index 3407023b48b..02d8691b2d4 100644 --- a/lib/emscripten-tests/tests/emtests/test_siglongjmp.rs +++ b/tests/emtests/test_siglongjmp.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_siglongjmp() { assert_emscripten_output!( - "../../emtests/test_siglongjmp.wasm", + "../emscripten_resources/emtests/test_siglongjmp.wasm", "test_siglongjmp", vec![], - "../../emtests/test_siglongjmp.out" + "../emscripten_resources/emtests/test_siglongjmp.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_sintvars.rs b/tests/emtests/test_sintvars.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_sintvars.rs rename to tests/emtests/test_sintvars.rs index f74daa8b1a3..f244a99dccd 100644 --- a/lib/emscripten-tests/tests/emtests/test_sintvars.rs +++ b/tests/emtests/test_sintvars.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_sintvars() { assert_emscripten_output!( - "../../emtests/test_sintvars.wasm", + "../emscripten_resources/emtests/test_sintvars.wasm", "test_sintvars", vec![], - "../../emtests/test_sintvars.out" + "../emscripten_resources/emtests/test_sintvars.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_sizeof.rs b/tests/emtests/test_sizeof.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_sizeof.rs rename to tests/emtests/test_sizeof.rs index 53e8cf19fc3..15d6c7c097d 100644 --- a/lib/emscripten-tests/tests/emtests/test_sizeof.rs +++ b/tests/emtests/test_sizeof.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_sizeof() { assert_emscripten_output!( - "../../emtests/test_sizeof.wasm", + "../emscripten_resources/emtests/test_sizeof.wasm", "test_sizeof", vec![], - "../../emtests/test_sizeof.out" + "../emscripten_resources/emtests/test_sizeof.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_sscanf.rs b/tests/emtests/test_sscanf.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_sscanf.rs rename to tests/emtests/test_sscanf.rs index e3072841fbb..94cca8504dc 100644 --- a/lib/emscripten-tests/tests/emtests/test_sscanf.rs +++ b/tests/emtests/test_sscanf.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_sscanf() { assert_emscripten_output!( - "../../emtests/test_sscanf.wasm", + "../emscripten_resources/emtests/test_sscanf.wasm", "test_sscanf", vec![], - "../../emtests/test_sscanf.out" + "../emscripten_resources/emtests/test_sscanf.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_sscanf_3.rs b/tests/emtests/test_sscanf_3.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_sscanf_3.rs rename to tests/emtests/test_sscanf_3.rs index c331db881f2..7351bd7fbb5 100644 --- a/lib/emscripten-tests/tests/emtests/test_sscanf_3.rs +++ b/tests/emtests/test_sscanf_3.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_sscanf_3() { assert_emscripten_output!( - "../../emtests/test_sscanf_3.wasm", + "../emscripten_resources/emtests/test_sscanf_3.wasm", "test_sscanf_3", vec![], - "../../emtests/test_sscanf_3.out" + "../emscripten_resources/emtests/test_sscanf_3.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_sscanf_4.rs b/tests/emtests/test_sscanf_4.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_sscanf_4.rs rename to tests/emtests/test_sscanf_4.rs index a9a959f3816..e11773e109a 100644 --- a/lib/emscripten-tests/tests/emtests/test_sscanf_4.rs +++ b/tests/emtests/test_sscanf_4.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_sscanf_4() { assert_emscripten_output!( - "../../emtests/test_sscanf_4.wasm", + "../emscripten_resources/emtests/test_sscanf_4.wasm", "test_sscanf_4", vec![], - "../../emtests/test_sscanf_4.out" + "../emscripten_resources/emtests/test_sscanf_4.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_sscanf_5.rs b/tests/emtests/test_sscanf_5.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_sscanf_5.rs rename to tests/emtests/test_sscanf_5.rs index 05801407fe2..deda4ac80c6 100644 --- a/lib/emscripten-tests/tests/emtests/test_sscanf_5.rs +++ b/tests/emtests/test_sscanf_5.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_sscanf_5() { assert_emscripten_output!( - "../../emtests/test_sscanf_5.wasm", + "../emscripten_resources/emtests/test_sscanf_5.wasm", "test_sscanf_5", vec![], - "../../emtests/test_sscanf_5.out" + "../emscripten_resources/emtests/test_sscanf_5.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_sscanf_6.rs b/tests/emtests/test_sscanf_6.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_sscanf_6.rs rename to tests/emtests/test_sscanf_6.rs index d9771ca133e..3ee05ed81b1 100644 --- a/lib/emscripten-tests/tests/emtests/test_sscanf_6.rs +++ b/tests/emtests/test_sscanf_6.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_sscanf_6() { assert_emscripten_output!( - "../../emtests/test_sscanf_6.wasm", + "../emscripten_resources/emtests/test_sscanf_6.wasm", "test_sscanf_6", vec![], - "../../emtests/test_sscanf_6.out" + "../emscripten_resources/emtests/test_sscanf_6.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_sscanf_caps.rs b/tests/emtests/test_sscanf_caps.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_sscanf_caps.rs rename to tests/emtests/test_sscanf_caps.rs index f88ec7e76c0..3c52181e19c 100644 --- a/lib/emscripten-tests/tests/emtests/test_sscanf_caps.rs +++ b/tests/emtests/test_sscanf_caps.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_sscanf_caps() { assert_emscripten_output!( - "../../emtests/test_sscanf_caps.wasm", + "../emscripten_resources/emtests/test_sscanf_caps.wasm", "test_sscanf_caps", vec![], - "../../emtests/test_sscanf_caps.out" + "../emscripten_resources/emtests/test_sscanf_caps.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_sscanf_float.rs b/tests/emtests/test_sscanf_float.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_sscanf_float.rs rename to tests/emtests/test_sscanf_float.rs index f98c0b2d0a8..ee0ce170646 100644 --- a/lib/emscripten-tests/tests/emtests/test_sscanf_float.rs +++ b/tests/emtests/test_sscanf_float.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_sscanf_float() { assert_emscripten_output!( - "../../emtests/test_sscanf_float.wasm", + "../emscripten_resources/emtests/test_sscanf_float.wasm", "test_sscanf_float", vec![], - "../../emtests/test_sscanf_float.out" + "../emscripten_resources/emtests/test_sscanf_float.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_sscanf_hex.rs b/tests/emtests/test_sscanf_hex.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_sscanf_hex.rs rename to tests/emtests/test_sscanf_hex.rs index 077bc57e932..3381e85702e 100644 --- a/lib/emscripten-tests/tests/emtests/test_sscanf_hex.rs +++ b/tests/emtests/test_sscanf_hex.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_sscanf_hex() { assert_emscripten_output!( - "../../emtests/test_sscanf_hex.wasm", + "../emscripten_resources/emtests/test_sscanf_hex.wasm", "test_sscanf_hex", vec![], - "../../emtests/test_sscanf_hex.out" + "../emscripten_resources/emtests/test_sscanf_hex.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_sscanf_n.rs b/tests/emtests/test_sscanf_n.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_sscanf_n.rs rename to tests/emtests/test_sscanf_n.rs index 596c70307b8..b44e3fa1a87 100644 --- a/lib/emscripten-tests/tests/emtests/test_sscanf_n.rs +++ b/tests/emtests/test_sscanf_n.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_sscanf_n() { assert_emscripten_output!( - "../../emtests/test_sscanf_n.wasm", + "../emscripten_resources/emtests/test_sscanf_n.wasm", "test_sscanf_n", vec![], - "../../emtests/test_sscanf_n.out" + "../emscripten_resources/emtests/test_sscanf_n.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_sscanf_other_whitespace.rs b/tests/emtests/test_sscanf_other_whitespace.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_sscanf_other_whitespace.rs rename to tests/emtests/test_sscanf_other_whitespace.rs index 40f7e05b783..0076a51f7a7 100644 --- a/lib/emscripten-tests/tests/emtests/test_sscanf_other_whitespace.rs +++ b/tests/emtests/test_sscanf_other_whitespace.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_sscanf_other_whitespace() { assert_emscripten_output!( - "../../emtests/test_sscanf_other_whitespace.wasm", + "../emscripten_resources/emtests/test_sscanf_other_whitespace.wasm", "test_sscanf_other_whitespace", vec![], - "../../emtests/test_sscanf_other_whitespace.out" + "../emscripten_resources/emtests/test_sscanf_other_whitespace.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_sscanf_skip.rs b/tests/emtests/test_sscanf_skip.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_sscanf_skip.rs rename to tests/emtests/test_sscanf_skip.rs index f8df1660a59..928aaebeafd 100644 --- a/lib/emscripten-tests/tests/emtests/test_sscanf_skip.rs +++ b/tests/emtests/test_sscanf_skip.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_sscanf_skip() { assert_emscripten_output!( - "../../emtests/test_sscanf_skip.wasm", + "../emscripten_resources/emtests/test_sscanf_skip.wasm", "test_sscanf_skip", vec![], - "../../emtests/test_sscanf_skip.out" + "../emscripten_resources/emtests/test_sscanf_skip.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_sscanf_whitespace.rs b/tests/emtests/test_sscanf_whitespace.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_sscanf_whitespace.rs rename to tests/emtests/test_sscanf_whitespace.rs index 9b5ecc4c3ed..90257eee41d 100644 --- a/lib/emscripten-tests/tests/emtests/test_sscanf_whitespace.rs +++ b/tests/emtests/test_sscanf_whitespace.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_sscanf_whitespace() { assert_emscripten_output!( - "../../emtests/test_sscanf_whitespace.wasm", + "../emscripten_resources/emtests/test_sscanf_whitespace.wasm", "test_sscanf_whitespace", vec![], - "../../emtests/test_sscanf_whitespace.out" + "../emscripten_resources/emtests/test_sscanf_whitespace.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_stack_varargs.rs b/tests/emtests/test_stack_varargs.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_stack_varargs.rs rename to tests/emtests/test_stack_varargs.rs index 7507e9ec92a..37344e56b09 100644 --- a/lib/emscripten-tests/tests/emtests/test_stack_varargs.rs +++ b/tests/emtests/test_stack_varargs.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_stack_varargs() { assert_emscripten_output!( - "../../emtests/test_stack_varargs.wasm", + "../emscripten_resources/emtests/test_stack_varargs.wasm", "test_stack_varargs", vec![], - "../../emtests/test_stack_varargs.out" + "../emscripten_resources/emtests/test_stack_varargs.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_stack_void.rs b/tests/emtests/test_stack_void.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_stack_void.rs rename to tests/emtests/test_stack_void.rs index 2a89f51fe3a..99a9941b423 100644 --- a/lib/emscripten-tests/tests/emtests/test_stack_void.rs +++ b/tests/emtests/test_stack_void.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_stack_void() { assert_emscripten_output!( - "../../emtests/test_stack_void.wasm", + "../emscripten_resources/emtests/test_stack_void.wasm", "test_stack_void", vec![], - "../../emtests/test_stack_void.out" + "../emscripten_resources/emtests/test_stack_void.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_statvfs.rs b/tests/emtests/test_statvfs.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_statvfs.rs rename to tests/emtests/test_statvfs.rs index 79e1de4f2d1..a6051603939 100644 --- a/lib/emscripten-tests/tests/emtests/test_statvfs.rs +++ b/tests/emtests/test_statvfs.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_statvfs() { assert_emscripten_output!( - "../../emtests/test_statvfs.wasm", + "../emscripten_resources/emtests/test_statvfs.wasm", "test_statvfs", vec![], - "../../emtests/test_statvfs.out" + "../emscripten_resources/emtests/test_statvfs.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_std_cout_new.rs b/tests/emtests/test_std_cout_new.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_std_cout_new.rs rename to tests/emtests/test_std_cout_new.rs index 0ec8746c04d..16f6dd997c1 100644 --- a/lib/emscripten-tests/tests/emtests/test_std_cout_new.rs +++ b/tests/emtests/test_std_cout_new.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_std_cout_new() { assert_emscripten_output!( - "../../emtests/test_std_cout_new.wasm", + "../emscripten_resources/emtests/test_std_cout_new.wasm", "test_std_cout_new", vec![], - "../../emtests/test_std_cout_new.out" + "../emscripten_resources/emtests/test_std_cout_new.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_strcasecmp.rs b/tests/emtests/test_strcasecmp.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_strcasecmp.rs rename to tests/emtests/test_strcasecmp.rs index 4c0a9ed9ec6..b4bd4aa4ac4 100644 --- a/lib/emscripten-tests/tests/emtests/test_strcasecmp.rs +++ b/tests/emtests/test_strcasecmp.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_strcasecmp() { assert_emscripten_output!( - "../../emtests/test_strcasecmp.wasm", + "../emscripten_resources/emtests/test_strcasecmp.wasm", "test_strcasecmp", vec![], - "../../emtests/test_strcasecmp.out" + "../emscripten_resources/emtests/test_strcasecmp.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_strcmp_uni.rs b/tests/emtests/test_strcmp_uni.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_strcmp_uni.rs rename to tests/emtests/test_strcmp_uni.rs index 5691e4f5736..144344bb034 100644 --- a/lib/emscripten-tests/tests/emtests/test_strcmp_uni.rs +++ b/tests/emtests/test_strcmp_uni.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_strcmp_uni() { assert_emscripten_output!( - "../../emtests/test_strcmp_uni.wasm", + "../emscripten_resources/emtests/test_strcmp_uni.wasm", "test_strcmp_uni", vec![], - "../../emtests/test_strcmp_uni.out" + "../emscripten_resources/emtests/test_strcmp_uni.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_strftime.rs b/tests/emtests/test_strftime.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_strftime.rs rename to tests/emtests/test_strftime.rs index ea98fe0c8d5..57950545525 100644 --- a/lib/emscripten-tests/tests/emtests/test_strftime.rs +++ b/tests/emtests/test_strftime.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_strftime() { assert_emscripten_output!( - "../../emtests/test_strftime.wasm", + "../emscripten_resources/emtests/test_strftime.wasm", "test_strftime", vec![], - "../../emtests/test_strftime.out" + "../emscripten_resources/emtests/test_strftime.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_strings.rs b/tests/emtests/test_strings.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_strings.rs rename to tests/emtests/test_strings.rs index 8c0bfd11392..2b26e48d744 100644 --- a/lib/emscripten-tests/tests/emtests/test_strings.rs +++ b/tests/emtests/test_strings.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_strings() { assert_emscripten_output!( - "../../emtests/test_strings.wasm", + "../emscripten_resources/emtests/test_strings.wasm", "test_strings", vec![], - "../../emtests/test_strings.out" + "../emscripten_resources/emtests/test_strings.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_strndup.rs b/tests/emtests/test_strndup.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_strndup.rs rename to tests/emtests/test_strndup.rs index 7fdb25bbe1a..f05287fe29f 100644 --- a/lib/emscripten-tests/tests/emtests/test_strndup.rs +++ b/tests/emtests/test_strndup.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_strndup() { assert_emscripten_output!( - "../../emtests/test_strndup.wasm", + "../emscripten_resources/emtests/test_strndup.wasm", "test_strndup", vec![], - "../../emtests/test_strndup.out" + "../emscripten_resources/emtests/test_strndup.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_strptime_days.rs b/tests/emtests/test_strptime_days.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_strptime_days.rs rename to tests/emtests/test_strptime_days.rs index ea6accc62f4..20f835c50c0 100644 --- a/lib/emscripten-tests/tests/emtests/test_strptime_days.rs +++ b/tests/emtests/test_strptime_days.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_strptime_days() { assert_emscripten_output!( - "../../emtests/test_strptime_days.wasm", + "../emscripten_resources/emtests/test_strptime_days.wasm", "test_strptime_days", vec![], - "../../emtests/test_strptime_days.out" + "../emscripten_resources/emtests/test_strptime_days.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_strptime_reentrant.rs b/tests/emtests/test_strptime_reentrant.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_strptime_reentrant.rs rename to tests/emtests/test_strptime_reentrant.rs index 35f89ae3d42..fcaf5e41bc7 100644 --- a/lib/emscripten-tests/tests/emtests/test_strptime_reentrant.rs +++ b/tests/emtests/test_strptime_reentrant.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_strptime_reentrant() { assert_emscripten_output!( - "../../emtests/test_strptime_reentrant.wasm", + "../emscripten_resources/emtests/test_strptime_reentrant.wasm", "test_strptime_reentrant", vec![], - "../../emtests/test_strptime_reentrant.out" + "../emscripten_resources/emtests/test_strptime_reentrant.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_strstr.rs b/tests/emtests/test_strstr.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_strstr.rs rename to tests/emtests/test_strstr.rs index 86af149e822..6f9f1198daf 100644 --- a/lib/emscripten-tests/tests/emtests/test_strstr.rs +++ b/tests/emtests/test_strstr.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_strstr() { assert_emscripten_output!( - "../../emtests/test_strstr.wasm", + "../emscripten_resources/emtests/test_strstr.wasm", "test_strstr", vec![], - "../../emtests/test_strstr.out" + "../emscripten_resources/emtests/test_strstr.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_strtod.rs b/tests/emtests/test_strtod.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_strtod.rs rename to tests/emtests/test_strtod.rs index 52bb1987e4c..70901d0cad6 100644 --- a/lib/emscripten-tests/tests/emtests/test_strtod.rs +++ b/tests/emtests/test_strtod.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_strtod() { assert_emscripten_output!( - "../../emtests/test_strtod.wasm", + "../emscripten_resources/emtests/test_strtod.wasm", "test_strtod", vec![], - "../../emtests/test_strtod.out" + "../emscripten_resources/emtests/test_strtod.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_strtok.rs b/tests/emtests/test_strtok.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_strtok.rs rename to tests/emtests/test_strtok.rs index cef228e857c..ea4b3ff68d8 100644 --- a/lib/emscripten-tests/tests/emtests/test_strtok.rs +++ b/tests/emtests/test_strtok.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_strtok() { assert_emscripten_output!( - "../../emtests/test_strtok.wasm", + "../emscripten_resources/emtests/test_strtok.wasm", "test_strtok", vec![], - "../../emtests/test_strtok.out" + "../emscripten_resources/emtests/test_strtok.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_strtol_bin.rs b/tests/emtests/test_strtol_bin.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_strtol_bin.rs rename to tests/emtests/test_strtol_bin.rs index 48f459556a1..ec2f73f033f 100644 --- a/lib/emscripten-tests/tests/emtests/test_strtol_bin.rs +++ b/tests/emtests/test_strtol_bin.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_strtol_bin() { assert_emscripten_output!( - "../../emtests/test_strtol_bin.wasm", + "../emscripten_resources/emtests/test_strtol_bin.wasm", "test_strtol_bin", vec![], - "../../emtests/test_strtol_bin.out" + "../emscripten_resources/emtests/test_strtol_bin.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_strtol_dec.rs b/tests/emtests/test_strtol_dec.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_strtol_dec.rs rename to tests/emtests/test_strtol_dec.rs index 7a3a6e89a6c..a1ef8941d7b 100644 --- a/lib/emscripten-tests/tests/emtests/test_strtol_dec.rs +++ b/tests/emtests/test_strtol_dec.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_strtol_dec() { assert_emscripten_output!( - "../../emtests/test_strtol_dec.wasm", + "../emscripten_resources/emtests/test_strtol_dec.wasm", "test_strtol_dec", vec![], - "../../emtests/test_strtol_dec.out" + "../emscripten_resources/emtests/test_strtol_dec.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_strtol_hex.rs b/tests/emtests/test_strtol_hex.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_strtol_hex.rs rename to tests/emtests/test_strtol_hex.rs index 257e14b35cd..5c7eb1d2f95 100644 --- a/lib/emscripten-tests/tests/emtests/test_strtol_hex.rs +++ b/tests/emtests/test_strtol_hex.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_strtol_hex() { assert_emscripten_output!( - "../../emtests/test_strtol_hex.wasm", + "../emscripten_resources/emtests/test_strtol_hex.wasm", "test_strtol_hex", vec![], - "../../emtests/test_strtol_hex.out" + "../emscripten_resources/emtests/test_strtol_hex.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_strtol_oct.rs b/tests/emtests/test_strtol_oct.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_strtol_oct.rs rename to tests/emtests/test_strtol_oct.rs index ba9fa1a7853..1893d178cf8 100644 --- a/lib/emscripten-tests/tests/emtests/test_strtol_oct.rs +++ b/tests/emtests/test_strtol_oct.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_strtol_oct() { assert_emscripten_output!( - "../../emtests/test_strtol_oct.wasm", + "../emscripten_resources/emtests/test_strtol_oct.wasm", "test_strtol_oct", vec![], - "../../emtests/test_strtol_oct.out" + "../emscripten_resources/emtests/test_strtol_oct.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_strtold.rs b/tests/emtests/test_strtold.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_strtold.rs rename to tests/emtests/test_strtold.rs index 935001356cb..1c2a8c391cd 100644 --- a/lib/emscripten-tests/tests/emtests/test_strtold.rs +++ b/tests/emtests/test_strtold.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_strtold() { assert_emscripten_output!( - "../../emtests/test_strtold.wasm", + "../emscripten_resources/emtests/test_strtold.wasm", "test_strtold", vec![], - "../../emtests/test_strtold.out" + "../emscripten_resources/emtests/test_strtold.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_strtoll_bin.rs b/tests/emtests/test_strtoll_bin.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_strtoll_bin.rs rename to tests/emtests/test_strtoll_bin.rs index 0e067ef72bc..c7732d59d0d 100644 --- a/lib/emscripten-tests/tests/emtests/test_strtoll_bin.rs +++ b/tests/emtests/test_strtoll_bin.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_strtoll_bin() { assert_emscripten_output!( - "../../emtests/test_strtoll_bin.wasm", + "../emscripten_resources/emtests/test_strtoll_bin.wasm", "test_strtoll_bin", vec![], - "../../emtests/test_strtoll_bin.out" + "../emscripten_resources/emtests/test_strtoll_bin.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_strtoll_dec.rs b/tests/emtests/test_strtoll_dec.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_strtoll_dec.rs rename to tests/emtests/test_strtoll_dec.rs index a073eb05dd2..aaecfa8c74c 100644 --- a/lib/emscripten-tests/tests/emtests/test_strtoll_dec.rs +++ b/tests/emtests/test_strtoll_dec.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_strtoll_dec() { assert_emscripten_output!( - "../../emtests/test_strtoll_dec.wasm", + "../emscripten_resources/emtests/test_strtoll_dec.wasm", "test_strtoll_dec", vec![], - "../../emtests/test_strtoll_dec.out" + "../emscripten_resources/emtests/test_strtoll_dec.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_strtoll_hex.rs b/tests/emtests/test_strtoll_hex.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_strtoll_hex.rs rename to tests/emtests/test_strtoll_hex.rs index 8bb61fa1b38..3a1a2e1734f 100644 --- a/lib/emscripten-tests/tests/emtests/test_strtoll_hex.rs +++ b/tests/emtests/test_strtoll_hex.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_strtoll_hex() { assert_emscripten_output!( - "../../emtests/test_strtoll_hex.wasm", + "../emscripten_resources/emtests/test_strtoll_hex.wasm", "test_strtoll_hex", vec![], - "../../emtests/test_strtoll_hex.out" + "../emscripten_resources/emtests/test_strtoll_hex.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_strtoll_oct.rs b/tests/emtests/test_strtoll_oct.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_strtoll_oct.rs rename to tests/emtests/test_strtoll_oct.rs index 8a96615d66d..92e3b2ed917 100644 --- a/lib/emscripten-tests/tests/emtests/test_strtoll_oct.rs +++ b/tests/emtests/test_strtoll_oct.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_strtoll_oct() { assert_emscripten_output!( - "../../emtests/test_strtoll_oct.wasm", + "../emscripten_resources/emtests/test_strtoll_oct.wasm", "test_strtoll_oct", vec![], - "../../emtests/test_strtoll_oct.out" + "../emscripten_resources/emtests/test_strtoll_oct.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_struct_varargs.rs b/tests/emtests/test_struct_varargs.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_struct_varargs.rs rename to tests/emtests/test_struct_varargs.rs index 211164a29b8..d3249fd28f7 100644 --- a/lib/emscripten-tests/tests/emtests/test_struct_varargs.rs +++ b/tests/emtests/test_struct_varargs.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_struct_varargs() { assert_emscripten_output!( - "../../emtests/test_struct_varargs.wasm", + "../emscripten_resources/emtests/test_struct_varargs.wasm", "test_struct_varargs", vec![], - "../../emtests/test_struct_varargs.out" + "../emscripten_resources/emtests/test_struct_varargs.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_time_c.rs b/tests/emtests/test_time_c.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_time_c.rs rename to tests/emtests/test_time_c.rs index 2c07d08b96f..2e30b49d29e 100644 --- a/lib/emscripten-tests/tests/emtests/test_time_c.rs +++ b/tests/emtests/test_time_c.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_time_c() { assert_emscripten_output!( - "../../emtests/test_time_c.wasm", + "../emscripten_resources/emtests/test_time_c.wasm", "test_time_c", vec![], - "../../emtests/test_time_c.out" + "../emscripten_resources/emtests/test_time_c.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_tracing.rs b/tests/emtests/test_tracing.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_tracing.rs rename to tests/emtests/test_tracing.rs index 957e87c1004..6b59bb353a2 100644 --- a/lib/emscripten-tests/tests/emtests/test_tracing.rs +++ b/tests/emtests/test_tracing.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_tracing() { assert_emscripten_output!( - "../../emtests/test_tracing.wasm", + "../emscripten_resources/emtests/test_tracing.wasm", "test_tracing", vec![], - "../../emtests/test_tracing.out" + "../emscripten_resources/emtests/test_tracing.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_transtrcase.rs b/tests/emtests/test_transtrcase.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_transtrcase.rs rename to tests/emtests/test_transtrcase.rs index d0c7079c9a8..82b9737c54f 100644 --- a/lib/emscripten-tests/tests/emtests/test_transtrcase.rs +++ b/tests/emtests/test_transtrcase.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_transtrcase() { assert_emscripten_output!( - "../../emtests/test_transtrcase.wasm", + "../emscripten_resources/emtests/test_transtrcase.wasm", "test_transtrcase", vec![], - "../../emtests/test_transtrcase.out" + "../emscripten_resources/emtests/test_transtrcase.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_trickystring.rs b/tests/emtests/test_trickystring.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_trickystring.rs rename to tests/emtests/test_trickystring.rs index f04295c9280..5e3ffad0552 100644 --- a/lib/emscripten-tests/tests/emtests/test_trickystring.rs +++ b/tests/emtests/test_trickystring.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_trickystring() { assert_emscripten_output!( - "../../emtests/test_trickystring.wasm", + "../emscripten_resources/emtests/test_trickystring.wasm", "test_trickystring", vec![], - "../../emtests/test_trickystring.out" + "../emscripten_resources/emtests/test_trickystring.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_uname.rs b/tests/emtests/test_uname.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_uname.rs rename to tests/emtests/test_uname.rs index ad1f339ee54..4a603992d57 100644 --- a/lib/emscripten-tests/tests/emtests/test_uname.rs +++ b/tests/emtests/test_uname.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_uname() { assert_emscripten_output!( - "../../emtests/test_uname.wasm", + "../emscripten_resources/emtests/test_uname.wasm", "test_uname", vec![], - "../../emtests/test_uname.out" + "../emscripten_resources/emtests/test_uname.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_unary_literal.rs b/tests/emtests/test_unary_literal.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_unary_literal.rs rename to tests/emtests/test_unary_literal.rs index fc58fa28812..9a21049d092 100644 --- a/lib/emscripten-tests/tests/emtests/test_unary_literal.rs +++ b/tests/emtests/test_unary_literal.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_unary_literal() { assert_emscripten_output!( - "../../emtests/test_unary_literal.wasm", + "../emscripten_resources/emtests/test_unary_literal.wasm", "test_unary_literal", vec![], - "../../emtests/test_unary_literal.out" + "../emscripten_resources/emtests/test_unary_literal.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_utf.rs b/tests/emtests/test_utf.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_utf.rs rename to tests/emtests/test_utf.rs index f1dba3bca45..b53e9b96e04 100644 --- a/lib/emscripten-tests/tests/emtests/test_utf.rs +++ b/tests/emtests/test_utf.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_utf() { assert_emscripten_output!( - "../../emtests/test_utf.wasm", + "../emscripten_resources/emtests/test_utf.wasm", "test_utf", vec![], - "../../emtests/test_utf.out" + "../emscripten_resources/emtests/test_utf.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_varargs.rs b/tests/emtests/test_varargs.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_varargs.rs rename to tests/emtests/test_varargs.rs index 8fafe968732..4c6145ca727 100644 --- a/lib/emscripten-tests/tests/emtests/test_varargs.rs +++ b/tests/emtests/test_varargs.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_varargs() { assert_emscripten_output!( - "../../emtests/test_varargs.wasm", + "../emscripten_resources/emtests/test_varargs.wasm", "test_varargs", vec![], - "../../emtests/test_varargs.out" + "../emscripten_resources/emtests/test_varargs.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_varargs_multi.rs b/tests/emtests/test_varargs_multi.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_varargs_multi.rs rename to tests/emtests/test_varargs_multi.rs index 581b854fc39..3ebcad10925 100644 --- a/lib/emscripten-tests/tests/emtests/test_varargs_multi.rs +++ b/tests/emtests/test_varargs_multi.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_varargs_multi() { assert_emscripten_output!( - "../../emtests/test_varargs_multi.wasm", + "../emscripten_resources/emtests/test_varargs_multi.wasm", "test_varargs_multi", vec![], - "../../emtests/test_varargs_multi.out" + "../emscripten_resources/emtests/test_varargs_multi.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_vfs.rs b/tests/emtests/test_vfs.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_vfs.rs rename to tests/emtests/test_vfs.rs index afd33904224..d63e3208486 100644 --- a/lib/emscripten-tests/tests/emtests/test_vfs.rs +++ b/tests/emtests/test_vfs.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_vfs() { assert_emscripten_output!( - "../../emtests/test_vfs.wasm", + "../emscripten_resources/emtests/test_vfs.wasm", "test_vfs", vec![], - "../../emtests/test_vfs.out" + "../emscripten_resources/emtests/test_vfs.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_vprintf.rs b/tests/emtests/test_vprintf.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_vprintf.rs rename to tests/emtests/test_vprintf.rs index 18fa6301886..e7af22e8bb0 100644 --- a/lib/emscripten-tests/tests/emtests/test_vprintf.rs +++ b/tests/emtests/test_vprintf.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_vprintf() { assert_emscripten_output!( - "../../emtests/test_vprintf.wasm", + "../emscripten_resources/emtests/test_vprintf.wasm", "test_vprintf", vec![], - "../../emtests/test_vprintf.out" + "../emscripten_resources/emtests/test_vprintf.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_vsnprintf.rs b/tests/emtests/test_vsnprintf.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_vsnprintf.rs rename to tests/emtests/test_vsnprintf.rs index f1125446453..caab9d6604f 100644 --- a/lib/emscripten-tests/tests/emtests/test_vsnprintf.rs +++ b/tests/emtests/test_vsnprintf.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_vsnprintf() { assert_emscripten_output!( - "../../emtests/test_vsnprintf.wasm", + "../emscripten_resources/emtests/test_vsnprintf.wasm", "test_vsnprintf", vec![], - "../../emtests/test_vsnprintf.out" + "../emscripten_resources/emtests/test_vsnprintf.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_wprintf.rs b/tests/emtests/test_wprintf.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_wprintf.rs rename to tests/emtests/test_wprintf.rs index 3043df12da9..bcc8f45db52 100644 --- a/lib/emscripten-tests/tests/emtests/test_wprintf.rs +++ b/tests/emtests/test_wprintf.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_wprintf() { assert_emscripten_output!( - "../../emtests/test_wprintf.wasm", + "../emscripten_resources/emtests/test_wprintf.wasm", "test_wprintf", vec![], - "../../emtests/test_wprintf.out" + "../emscripten_resources/emtests/test_wprintf.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_write_stdout_fileno.rs b/tests/emtests/test_write_stdout_fileno.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_write_stdout_fileno.rs rename to tests/emtests/test_write_stdout_fileno.rs index debdc6530b0..cc41e53cc1f 100644 --- a/lib/emscripten-tests/tests/emtests/test_write_stdout_fileno.rs +++ b/tests/emtests/test_write_stdout_fileno.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_write_stdout_fileno() { assert_emscripten_output!( - "../../emtests/test_write_stdout_fileno.wasm", + "../emscripten_resources/emtests/test_write_stdout_fileno.wasm", "test_write_stdout_fileno", vec![], - "../../emtests/test_write_stdout_fileno.out" + "../emscripten_resources/emtests/test_write_stdout_fileno.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_zero_multiplication.rs b/tests/emtests/test_zero_multiplication.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_zero_multiplication.rs rename to tests/emtests/test_zero_multiplication.rs index 88d37d78d24..23b77dd4924 100644 --- a/lib/emscripten-tests/tests/emtests/test_zero_multiplication.rs +++ b/tests/emtests/test_zero_multiplication.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_zero_multiplication() { assert_emscripten_output!( - "../../emtests/test_zero_multiplication.wasm", + "../emscripten_resources/emtests/test_zero_multiplication.wasm", "test_zero_multiplication", vec![], - "../../emtests/test_zero_multiplication.out" + "../emscripten_resources/emtests/test_zero_multiplication.out" ); } diff --git a/lib/emscripten-tests/tests/emtests/test_zerodiv.rs b/tests/emtests/test_zerodiv.rs similarity index 50% rename from lib/emscripten-tests/tests/emtests/test_zerodiv.rs rename to tests/emtests/test_zerodiv.rs index df68359d3f6..f267e361889 100644 --- a/lib/emscripten-tests/tests/emtests/test_zerodiv.rs +++ b/tests/emtests/test_zerodiv.rs @@ -2,9 +2,9 @@ #[ignore] fn test_test_zerodiv() { assert_emscripten_output!( - "../../emtests/test_zerodiv.wasm", + "../emscripten_resources/emtests/test_zerodiv.wasm", "test_zerodiv", vec![], - "../../emtests/test_zerodiv.out" + "../emscripten_resources/emtests/test_zerodiv.out" ); } diff --git a/tests/generate-emscripten-tests/Cargo.toml b/tests/generate-emscripten-tests/Cargo.toml new file mode 100644 index 00000000000..a1aaf477013 --- /dev/null +++ b/tests/generate-emscripten-tests/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "generate-emscripten-tests" +version = "0.16.2" +description = "Tests for our Emscripten implementation" +license = "MIT" +authors = ["The Wasmer Engineering Team "] +edition = "2018" +publish = false + +[dependencies] +glob = "0.3" +tempfile = "3" diff --git a/lib/emscripten-tests/build/emtests.rs b/tests/generate-emscripten-tests/src/emtests.rs similarity index 82% rename from lib/emscripten-tests/build/emtests.rs rename to tests/generate-emscripten-tests/src/emtests.rs index 5fabc851300..b0274a095a9 100644 --- a/lib/emscripten-tests/build/emtests.rs +++ b/tests/generate-emscripten-tests/src/emtests.rs @@ -15,7 +15,8 @@ use std::fs::File; use std::io::prelude::*; use std::io::BufReader; -static BANNER: &str = "// Rust test file autogenerated with cargo build (build/emtests.rs). +static BANNER: &str = + "// Rust test file autogenerated with cargo build (generate-emscripten-tests). // Please do NOT modify it by hand, as it will be reseted on next build.\n"; const EXTENSIONS: [&str; 2] = ["c", "cpp"]; @@ -98,7 +99,7 @@ pub fn compile(file: &str, ignores: &HashSet) -> Option { let rs_module_name = module_name.to_lowercase(); let rust_test_filepath = format!( - concat!(env!("CARGO_MANIFEST_DIR"), "/tests/emtests/{}.rs"), + concat!(env!("CARGO_MANIFEST_DIR"), "/../emtests/{}.rs"), rs_module_name.as_str() ); @@ -114,23 +115,32 @@ pub fn compile(file: &str, ignores: &HashSet) -> Option { "" }; - let module_path = format!("emtests/{}.wasm", module_name); - let test_output_path = format!("emtests/{}.{}", module_name, output_extension); - if !Path::new(&module_path).is_file() { + let module_path = format!("../emscripten_resources/emtests/{}.wasm", module_name); + let test_output_path = format!( + "../emscripten_resources/emtests/{}.{}", + module_name, output_extension + ); + if !Path::new(&format!("{}/{}", env!("CARGO_MANIFEST_DIR"), &module_path)).is_file() { println!("Path not found to test module: {}", module_path); None - } else if !Path::new(&test_output_path).is_file() { - println!("Path not found to test output: {}", module_path); + } else if !Path::new(&format!( + "{}/{}", + env!("CARGO_MANIFEST_DIR"), + &test_output_path + )) + .is_file() + { + println!("Path not found to test output: {}", test_output_path); None } else { let contents = format!( "#[test]{ignore} fn test_{rs_module_name}() {{ assert_emscripten_output!( - \"../../{module_path}\", + \"{module_path}\", \"{rs_module_name}\", vec![], - \"../../{test_output_path}\" + \"{test_output_path}\" ); }} ", @@ -148,7 +158,7 @@ fn test_{rs_module_name}() {{ } pub fn build() { - let rust_test_modpath = concat!(env!("CARGO_MANIFEST_DIR"), "/tests/emtests/mod.rs"); + let rust_test_modpath = concat!(env!("CARGO_MANIFEST_DIR"), "/../emtests/mod.rs"); let mut modules: Vec = Vec::new(); // modules.reserve_exact(TESTS.len()); @@ -156,7 +166,15 @@ pub fn build() { let ignores = read_ignore_list(); for ext in EXTENSIONS.iter() { - for entry in glob(&format!("emtests/*.{}", ext)).unwrap() { + for entry in glob(&format!( + concat!( + env!("CARGO_MANIFEST_DIR"), + "/../emscripten_resources/emtests/*.{}" + ), + ext + )) + .unwrap() + { match entry { Ok(path) => { let test = path.to_str().unwrap(); @@ -187,8 +205,12 @@ pub fn build() { } } +const IGNORE_LIST_PATH: &str = concat!( + env!("CARGO_MANIFEST_DIR"), + "/../emscripten_resources/emtests/ignores.txt" +); fn read_ignore_list() -> HashSet { - let f = File::open("emtests/ignores.txt").unwrap(); + let f = File::open(IGNORE_LIST_PATH).unwrap(); let f = BufReader::new(f); f.lines() .filter_map(Result::ok) diff --git a/lib/emscripten-tests/build/mod.rs b/tests/generate-emscripten-tests/src/lib.rs similarity index 71% rename from lib/emscripten-tests/build/mod.rs rename to tests/generate-emscripten-tests/src/lib.rs index 54b8714a1c4..6bb96b9dfcf 100644 --- a/lib/emscripten-tests/build/mod.rs +++ b/tests/generate-emscripten-tests/src/lib.rs @@ -4,7 +4,8 @@ mod emtests; static EMTESTS_ENV_VAR: &str = "WASM_EMSCRIPTEN_GENERATE_EMTESTS"; -fn main() { +pub fn build() { + println!("cargo:rerun-if-env-changed={}", EMTESTS_ENV_VAR); if env::var(EMTESTS_ENV_VAR).unwrap_or("0".to_string()) == "1" { emtests::build(); } diff --git a/tests/generate-wasi-tests/Cargo.toml b/tests/generate-wasi-tests/Cargo.toml index 2167e7c88e7..33ce012545c 100644 --- a/tests/generate-wasi-tests/Cargo.toml +++ b/tests/generate-wasi-tests/Cargo.toml @@ -9,13 +9,4 @@ publish = false [dependencies] glob = "0.3" -tempfile = "3" -# We set default features to false to be able to use the singlepass backend properly - -#[dev-dependencies] -#wasmer-dev-utils = { path = "../../lib/dev-utils", version = "0.16.2"} - -#[features] -#clif = ["wasmer-clif-backend", "wasmer-runtime/default-backend-cranelift"] -#singlepass = ["wasmer-singlepass-backend", "wasmer-runtime/default-backend-singlepass"] -#llvm = ["wasmer-llvm-backend", "wasmer-runtime/default-backend-llvm"] +tempfile = "3" \ No newline at end of file From dfa6247075b6bceeb4d20982ff351419726357bf Mon Sep 17 00:00:00 2001 From: Mark McCaskey Date: Fri, 3 Apr 2020 14:24:40 -0700 Subject: [PATCH 03/12] Move spectests, wrap up test restructure --- Cargo.lock | 12 --- Cargo.toml | 2 +- Makefile | 75 ++++++++---------- benches/metering_benchmark.rs | 5 +- examples/plugin.rs | 3 +- .../examples => examples}/simple/main.rs | 0 .../examples => examples}/simple/simple.wasm | Bin lib/spectests/Cargo.toml | 28 ------- tests/middleware_common.rs | 7 +- .../examples/test.rs => tests/override.rs | 13 ++- {lib/spectests/tests => tests}/spectest.rs | 16 ++-- .../spectest_semantics.rs | 0 {lib/spectests => tests}/spectests/LICENSE | 0 {lib => tests}/spectests/README.md | 0 .../spectests/address.wast | 0 {lib/spectests => tests}/spectests/align.wast | 0 .../spectests => tests}/spectests/atomic.wast | 0 .../spectests/binary-leb128.wast | 0 .../spectests => tests}/spectests/binary.wast | 0 {lib/spectests => tests}/spectests/block.wast | 0 {lib/spectests => tests}/spectests/br.wast | 0 {lib/spectests => tests}/spectests/br_if.wast | 0 .../spectests/br_table.wast | 0 .../spectests/break-drop.wast | 0 {lib/spectests => tests}/spectests/call.wast | 0 .../spectests/call_indirect.wast | 0 .../spectests/comments.wast | Bin {lib/spectests => tests}/spectests/const.wast | 0 .../spectests/conversions.wast | 0 .../spectests => tests}/spectests/custom.wast | 0 {lib/spectests => tests}/spectests/data.wast | 0 {lib/spectests => tests}/spectests/elem.wast | 0 .../spectests/endianness.wast | 0 .../tests => tests/spectests}/excludes.txt | 0 .../spectests/exports.wast | 0 {lib/spectests => tests}/spectests/f32.wast | 0 .../spectests/f32_bitwise.wast | 0 .../spectests/f32_cmp.wast | 0 {lib/spectests => tests}/spectests/f64.wast | 0 .../spectests/f64_bitwise.wast | 0 .../spectests/f64_cmp.wast | 0 {lib/spectests => tests}/spectests/fac.wast | 0 .../spectests/float_exprs.wast | 0 .../spectests/float_literals.wast | 0 .../spectests/float_memory.wast | 0 .../spectests/float_misc.wast | 0 .../spectests/forward.wast | 0 {lib/spectests => tests}/spectests/func.wast | 0 .../spectests/func_ptrs.wast | 0 .../spectests/globals.wast | 0 {lib/spectests => tests}/spectests/i32.wast | 0 {lib/spectests => tests}/spectests/i64.wast | 0 {lib/spectests => tests}/spectests/if.wast | 0 .../spectests/imports.wast | 0 .../spectests/inline-module.wast | 0 .../spectests/int_exprs.wast | 0 .../spectests/int_literals.wast | 0 .../spectests => tests}/spectests/labels.wast | 0 .../spectests/left-to-right.wast | 0 .../spectests/linking.wast | 0 {lib/spectests => tests}/spectests/load.wast | 0 .../spectests/local_get.wast | 0 .../spectests/local_set.wast | 0 .../spectests/local_tee.wast | 0 {lib/spectests => tests}/spectests/loop.wast | 0 .../spectests => tests}/spectests/memory.wast | 0 .../spectests/memory_grow.wast | 0 .../spectests/memory_redundancy.wast | 0 .../spectests/memory_size.wast | 0 .../spectests/memory_trap.wast | 0 {lib/spectests => tests}/spectests/names.wast | 0 {lib/spectests => tests}/spectests/nop.wast | 0 .../spectests => tests}/spectests/return.wast | 0 .../spectests => tests}/spectests/select.wast | 0 {lib/spectests => tests}/spectests/simd.wast | 0 .../spectests/simd_binaryen.wast | 0 .../spectests/skip-stack-guard-page.wast | 0 {lib/spectests => tests}/spectests/stack.wast | 0 {lib/spectests => tests}/spectests/start.wast | 0 {lib/spectests => tests}/spectests/store.wast | 0 .../spectests => tests}/spectests/switch.wast | 0 {lib/spectests => tests}/spectests/token.wast | 0 {lib/spectests => tests}/spectests/traps.wast | 0 {lib/spectests => tests}/spectests/type.wast | 0 .../spectests/unreachable.wast | 0 .../spectests/unreached-invalid.wast | 0 .../spectests => tests}/spectests/unwind.wast | 0 .../spectests/utf8-custom-section-id.wast | 0 .../spectests/utf8-import-field.wast | 0 .../spectests/utf8-import-module.wast | 0 .../spectests/utf8-invalid-encoding.wast | 0 .../spectests => tests}/spectests/wasmer.wast | 0 tests/wasitests/README.md | 2 +- 93 files changed, 60 insertions(+), 103 deletions(-) rename {lib/spectests/examples => examples}/simple/main.rs (100%) rename {lib/spectests/examples => examples}/simple/simple.wasm (100%) delete mode 100644 lib/spectests/Cargo.toml rename lib/spectests/examples/test.rs => tests/override.rs (84%) rename {lib/spectests/tests => tests}/spectest.rs (99%) rename lib/spectests/tests/semantics.rs => tests/spectest_semantics.rs (100%) rename {lib/spectests => tests}/spectests/LICENSE (100%) rename {lib => tests}/spectests/README.md (100%) rename {lib/spectests => tests}/spectests/address.wast (100%) rename {lib/spectests => tests}/spectests/align.wast (100%) rename {lib/spectests => tests}/spectests/atomic.wast (100%) rename {lib/spectests => tests}/spectests/binary-leb128.wast (100%) rename {lib/spectests => tests}/spectests/binary.wast (100%) rename {lib/spectests => tests}/spectests/block.wast (100%) rename {lib/spectests => tests}/spectests/br.wast (100%) rename {lib/spectests => tests}/spectests/br_if.wast (100%) rename {lib/spectests => tests}/spectests/br_table.wast (100%) rename {lib/spectests => tests}/spectests/break-drop.wast (100%) rename {lib/spectests => tests}/spectests/call.wast (100%) rename {lib/spectests => tests}/spectests/call_indirect.wast (100%) rename {lib/spectests => tests}/spectests/comments.wast (100%) rename {lib/spectests => tests}/spectests/const.wast (100%) rename {lib/spectests => tests}/spectests/conversions.wast (100%) rename {lib/spectests => tests}/spectests/custom.wast (100%) rename {lib/spectests => tests}/spectests/data.wast (100%) rename {lib/spectests => tests}/spectests/elem.wast (100%) rename {lib/spectests => tests}/spectests/endianness.wast (100%) rename {lib/spectests/tests => tests/spectests}/excludes.txt (100%) rename {lib/spectests => tests}/spectests/exports.wast (100%) rename {lib/spectests => tests}/spectests/f32.wast (100%) rename {lib/spectests => tests}/spectests/f32_bitwise.wast (100%) rename {lib/spectests => tests}/spectests/f32_cmp.wast (100%) rename {lib/spectests => tests}/spectests/f64.wast (100%) rename {lib/spectests => tests}/spectests/f64_bitwise.wast (100%) rename {lib/spectests => tests}/spectests/f64_cmp.wast (100%) rename {lib/spectests => tests}/spectests/fac.wast (100%) rename {lib/spectests => tests}/spectests/float_exprs.wast (100%) rename {lib/spectests => tests}/spectests/float_literals.wast (100%) rename {lib/spectests => tests}/spectests/float_memory.wast (100%) rename {lib/spectests => tests}/spectests/float_misc.wast (100%) rename {lib/spectests => tests}/spectests/forward.wast (100%) rename {lib/spectests => tests}/spectests/func.wast (100%) rename {lib/spectests => tests}/spectests/func_ptrs.wast (100%) rename {lib/spectests => tests}/spectests/globals.wast (100%) rename {lib/spectests => tests}/spectests/i32.wast (100%) rename {lib/spectests => tests}/spectests/i64.wast (100%) rename {lib/spectests => tests}/spectests/if.wast (100%) rename {lib/spectests => tests}/spectests/imports.wast (100%) rename {lib/spectests => tests}/spectests/inline-module.wast (100%) rename {lib/spectests => tests}/spectests/int_exprs.wast (100%) rename {lib/spectests => tests}/spectests/int_literals.wast (100%) rename {lib/spectests => tests}/spectests/labels.wast (100%) rename {lib/spectests => tests}/spectests/left-to-right.wast (100%) rename {lib/spectests => tests}/spectests/linking.wast (100%) rename {lib/spectests => tests}/spectests/load.wast (100%) rename {lib/spectests => tests}/spectests/local_get.wast (100%) rename {lib/spectests => tests}/spectests/local_set.wast (100%) rename {lib/spectests => tests}/spectests/local_tee.wast (100%) rename {lib/spectests => tests}/spectests/loop.wast (100%) rename {lib/spectests => tests}/spectests/memory.wast (100%) rename {lib/spectests => tests}/spectests/memory_grow.wast (100%) rename {lib/spectests => tests}/spectests/memory_redundancy.wast (100%) rename {lib/spectests => tests}/spectests/memory_size.wast (100%) rename {lib/spectests => tests}/spectests/memory_trap.wast (100%) rename {lib/spectests => tests}/spectests/names.wast (100%) rename {lib/spectests => tests}/spectests/nop.wast (100%) rename {lib/spectests => tests}/spectests/return.wast (100%) rename {lib/spectests => tests}/spectests/select.wast (100%) rename {lib/spectests => tests}/spectests/simd.wast (100%) rename {lib/spectests => tests}/spectests/simd_binaryen.wast (100%) rename {lib/spectests => tests}/spectests/skip-stack-guard-page.wast (100%) rename {lib/spectests => tests}/spectests/stack.wast (100%) rename {lib/spectests => tests}/spectests/start.wast (100%) rename {lib/spectests => tests}/spectests/store.wast (100%) rename {lib/spectests => tests}/spectests/switch.wast (100%) rename {lib/spectests => tests}/spectests/token.wast (100%) rename {lib/spectests => tests}/spectests/traps.wast (100%) rename {lib/spectests => tests}/spectests/type.wast (100%) rename {lib/spectests => tests}/spectests/unreachable.wast (100%) rename {lib/spectests => tests}/spectests/unreached-invalid.wast (100%) rename {lib/spectests => tests}/spectests/unwind.wast (100%) rename {lib/spectests => tests}/spectests/utf8-custom-section-id.wast (100%) rename {lib/spectests => tests}/spectests/utf8-import-field.wast (100%) rename {lib/spectests => tests}/spectests/utf8-import-module.wast (100%) rename {lib/spectests => tests}/spectests/utf8-invalid-encoding.wast (100%) rename {lib/spectests => tests}/spectests/wasmer.wast (100%) diff --git a/Cargo.lock b/Cargo.lock index 411584b20be..8dbcf3c21f5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2962,18 +2962,6 @@ dependencies = [ "wasmer-runtime-core", ] -[[package]] -name = "wasmer-spectests" -version = "0.16.2" -dependencies = [ - "glob 0.3.0", - "wabt", - "wasmer-clif-backend", - "wasmer-llvm-backend", - "wasmer-runtime", - "wasmer-singlepass-backend", -] - [[package]] name = "wasmer-wasi" version = "0.16.2" diff --git a/Cargo.toml b/Cargo.toml index b339becb3d1..d52f780fe4f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -48,7 +48,6 @@ members = [ "lib/runtime", "lib/runtime-core", "lib/emscripten", - "lib/spectests", "lib/win-exception-handler", "lib/runtime-c-api", "lib/llvm-backend", @@ -110,6 +109,7 @@ managed = ["backend-singlepass", "wasmer-runtime-core/managed"] [[example]] name = "plugin" +required-features = ["wasi"] crate-type = ["bin"] [[example]] diff --git a/Makefile b/Makefile index ffeb9c8bf38..736746e63ab 100644 --- a/Makefile +++ b/Makefile @@ -1,104 +1,95 @@ .PHONY: spectests emtests clean build install lint precommit docs examples # Generate files -generate-spectests: - WASMER_RUNTIME_GENERATE_SPECTESTS=1 cargo build -p wasmer-runtime-core --release \ - && echo "formatting" \ - && cargo fmt - generate-emtests: - WASM_EMSCRIPTEN_GENERATE_EMTESTS=1 cargo build -p wasmer-emscripten-tests --release \ + WASM_EMSCRIPTEN_GENERATE_EMTESTS=1 cargo build --release \ && echo "formatting" \ && cargo fmt # To generate WASI tests you'll need to have the correct versions of the Rust nightly # toolchain installed, see `WasiVersion::get_compiler_toolchain` in -# `lib/wasi-tests/build/wasi_version.rs` +# `tests/generate-wasi-tests/src/wasi_version.rs` # # or run `make wasitests-setup-toolchain` or `make wasitests-setup-toolchain-all` generate-wasitests: wasitests-setup - WASM_WASI_GENERATE_WASITESTS=1 cargo build -p wasmer-wasi-tests --release -vv \ + WASM_WASI_GENERATE_WASITESTS=1 cargo build --release -vv \ && echo "formatting" \ && cargo fmt generate-wasitests-all: wasitests-setup - WASI_TEST_GENERATE_ALL=1 WASM_WASI_GENERATE_WASITESTS=1 cargo build -p wasmer-wasi-tests --release -vv \ + WASI_TEST_GENERATE_ALL=1 WASM_WASI_GENERATE_WASITESTS=1 cargo build --release -vv \ && echo "formatting" \ && cargo fmt -spectests-generate: generate-spectests emtests-generate: generate-emtests wasitests-generate: generate-wasitests wasitests-setup-toolchain: wasitests-setup - WASITESTS_SET_UP_TOOLCHAIN=1 cargo build -p wasmer-wasi-tests --release -vv + WASITESTS_SET_UP_TOOLCHAIN=1 cargo build --release -vv wasitests-setup-toolchain-all: wasitests-setup - WASI_TEST_GENERATE_ALL=1 WASITESTS_SET_UP_TOOLCHAIN=1 cargo build -p wasmer-wasi-tests --release -vv + WASI_TEST_GENERATE_ALL=1 WASITESTS_SET_UP_TOOLCHAIN=1 cargo build --release -vv -generate: generate-spectests generate-emtests generate-wasitests +generate: generate-emtests generate-wasitests # Spectests spectests-singlepass: - cargo test --manifest-path lib/spectests/Cargo.toml --release --features singlepass -- --nocapture --test-threads 1 + cargo test test_run_spectests --release --no-default-features --features "wasi backend-singlepass" -- --nocapture --test-threads 1 spectests-cranelift: - cargo test --manifest-path lib/spectests/Cargo.toml --release --features clif -- --nocapture + cargo test test_run_spectests --release --no-default-features --features "wasi backend-cranelift" -- --nocapture spectests-llvm: - cargo test --manifest-path lib/spectests/Cargo.toml --release --features llvm -- --nocapture + cargo test test_run_spectests --release --no-default-features --features "wasi backend-llvm" -- --nocapture spectests: spectests-singlepass spectests-cranelift spectests-llvm # Emscripten tests emtests-singlepass: - cargo test --manifest-path lib/emscripten-tests/Cargo.toml --release --features singlepass -- --test-threads=1 + cargo test emtest --release --no-default-features --features "wasi backend-singlepass" -- --test-threads=1 emtests-cranelift: - cargo test --manifest-path lib/emscripten-tests/Cargo.toml --release --features clif -- --test-threads=1 + cargo test emtest --release --no-default-features --features "wasi backend-cranelift" -- --test-threads=1 emtests-llvm: - cargo test --manifest-path lib/emscripten-tests/Cargo.toml --release --features llvm -- --test-threads=1 + cargo test emtest --release --no-default-features --features "wasi backend-llvm" -- --test-threads=1 emtests-unit: - cargo test --manifest-path lib/emscripten/Cargo.toml --release + cargo test emscripten --release emtests: emtests-unit emtests-singlepass emtests-cranelift emtests-llvm # Middleware tests middleware-singlepass: - cargo test --manifest-path lib/middleware-common-tests/Cargo.toml --release --features singlepass + cargo test middleware --release --no-default-features --features "wasi backend-singlepass" middleware-cranelift: - cargo test --manifest-path lib/middleware-common-tests/Cargo.toml --release --features clif + cargo test middleware --release --no-default-features --features "wasi backend-cranelift" middleware-llvm: - cargo test --manifest-path lib/middleware-common-tests/Cargo.toml --release --features llvm + cargo test middleware --release --no-default-features --features "wasi backend-llvm" middleware: middleware-singlepass middleware-cranelift middleware-llvm # Wasitests wasitests-setup: -# force cargo to rerun the build.rs step - touch lib/wasi-tests/build/mod.rs - rm -rf lib/wasi-tests/wasitests/test_fs/temp - mkdir -p lib/wasi-tests/wasitests/test_fs/temp + rm -rf tests/wasi_test_resources/test_fs/temp + mkdir -p tests/wasi_test_resources/test_fs/temp wasitests-singlepass: wasitests-setup - cargo test --manifest-path lib/wasi-tests/Cargo.toml --release --features singlepass -- --test-threads=1 + cargo test wasitest --release --no-default-features --features "wasi singlepass" -- --test-threads=1 wasitests-cranelift: wasitests-setup - cargo test --manifest-path lib/wasi-tests/Cargo.toml --release --features clif -- --test-threads=1 --nocapture + cargo test wasitest --release --no-default-features --features "wasi backend-cranelift" -- --test-threads=1 --nocapture wasitests-llvm: wasitests-setup - cargo test --manifest-path lib/wasi-tests/Cargo.toml --release --features llvm -- --test-threads=1 + cargo test wasitest --release --no-default-features --features "wasi backend-llvm" -- --test-threads=1 wasitests-unit: wasitests-setup - cargo test --manifest-path lib/wasi-tests/Cargo.toml --release --features clif -- --test-threads=1 --nocapture cargo test --manifest-path lib/wasi/Cargo.toml --release wasitests: wasitests-unit wasitests-singlepass wasitests-cranelift wasitests-llvm @@ -107,16 +98,16 @@ wasitests: wasitests-unit wasitests-singlepass wasitests-cranelift wasitests-llv # Backends singlepass: spectests-singlepass emtests-singlepass middleware-singlepass wasitests-singlepass cargo test -p wasmer-singlepass-backend --release - cargo test --manifest-path lib/runtime-core-tests/Cargo.toml --release --no-default-features --features backend-singlepass + cargo test --release --no-default-features --features "wasi backend-singlepass" cranelift: spectests-cranelift emtests-cranelift middleware-cranelift wasitests-cranelift cargo test -p wasmer-clif-backend --release - cargo test -p wasmer-runtime-core-tests --release + cargo test --release --no-default-features --features "wasi backend-cranelift" llvm: spectests-llvm emtests-llvm wasitests-llvm cargo test -p wasmer-llvm-backend --release - cargo test -p wasmer-llvm-backend-tests --release - cargo test --manifest-path lib/runtime-core-tests/Cargo.toml --release --no-default-features --features backend-llvm + cargo test llvm --release --no-default-features --features "wasi backend-llvm" + cargo test --release --no-default-features --features "wasi backend-llvm" # All tests @@ -160,12 +151,10 @@ test-capi: test-capi-singlepass test-capi-cranelift test-capi-llvm test-capi-ems capi-test: test-capi test-rest: - cargo test --release -p api-tests cargo test --release -p wasmer-dev-utils cargo test --release -p wasmer-interface-types cargo test --release -p wasmer-kernel-loader cargo test --release -p kernel-net - cargo test --release -p wasmer-llvm-backend-tests cargo test --release -p wasmer-runtime cargo test --release -p wasmer-runtime-core cargo test --release -p wasmer-wasi-experimental-io-devices @@ -175,7 +164,7 @@ test: spectests emtests middleware wasitests test-rest examples test-android: ci/run-docker.sh x86_64-linux-android --manifest-path=lib/singlepass-backend/Cargo.toml - ci/run-docker.sh x86_64-linux-android --manifest-path=lib/runtime-core-tests/Cargo.toml + ci/run-docker.sh x86_64-linux-android # Integration tests integration-tests: release-clif examples @@ -207,8 +196,7 @@ check-bench-singlepass: --exclude wasmer-clif-backend --exclude wasmer-llvm-backend --exclude wasmer-kernel-loader check-bench-clif: cargo check --benches --all --no-default-features --features "backend-cranelift" \ - --exclude wasmer-singlepass-backend --exclude wasmer-llvm-backend --exclude wasmer-kernel-loader \ - --exclude wasmer-middleware-common-tests + --exclude wasmer-singlepass-backend --exclude wasmer-llvm-backend --exclude wasmer-kernel-loader check-bench-llvm: cargo check --benches --all --no-default-features --features "backend-llvm" \ --exclude wasmer-singlepass-backend --exclude wasmer-clif-backend --exclude wasmer-kernel-loader @@ -217,7 +205,7 @@ check-bench: check-bench-singlepass check-bench-llvm # TODO: We wanted `--workspace --exclude wasmer-runtime`, but can't due # to https://github.com/rust-lang/cargo/issues/6745 . -NOT_RUNTIME_CRATES = -p wasmer-clif-backend -p wasmer-singlepass-backend -p wasmer-middleware-common -p wasmer-runtime-core -p wasmer-emscripten -p wasmer-llvm-backend -p wasmer-wasi -p wasmer-kernel-loader -p wasmer-dev-utils -p wasmer-wasi-tests -p wasmer-middleware-common-tests -p wasmer-emscripten-tests -p wasmer-interface-types +NOT_RUNTIME_CRATES = -p wasmer-clif-backend -p wasmer-singlepass-backend -p wasmer-middleware-common -p wasmer-runtime-core -p wasmer-emscripten -p wasmer-llvm-backend -p wasmer-wasi -p wasmer-kernel-loader -p wasmer-dev-utils -p wasmer-interface-types RUNTIME_CHECK = cargo check --manifest-path lib/runtime/Cargo.toml --no-default-features check: check-bench cargo check $(NOT_RUNTIME_CRATES) @@ -298,8 +286,7 @@ bench-singlepass: --exclude wasmer-clif-backend --exclude wasmer-llvm-backend --exclude wasmer-kernel-loader bench-clif: cargo bench --all --no-default-features --features "backend-cranelift" \ - --exclude wasmer-singlepass-backend --exclude wasmer-llvm-backend --exclude wasmer-kernel-loader \ - --exclude wasmer-middleware-common-tests + --exclude wasmer-singlepass-backend --exclude wasmer-llvm-backend --exclude wasmer-kernel-loader bench-llvm: cargo bench --all --no-default-features --features "backend-llvm" \ --exclude wasmer-singlepass-backend --exclude wasmer-clif-backend --exclude wasmer-kernel-loader @@ -354,7 +341,7 @@ publish-release: # cargo install cargo-deps # must install graphviz for `dot` dep-graph: - cargo deps --optional-deps --filter wasmer-wasi wasmer-wasi-tests wasmer-kernel-loader wasmer-dev-utils wasmer-llvm-backend wasmer-emscripten wasmer-emscripten-tests wasmer-runtime-core wasmer-runtime wasmer-middleware-common wasmer-middleware-common-tests wasmer-singlepass-backend wasmer-clif-backend wasmer --manifest-path Cargo.toml | dot -Tpng > wasmer_depgraph.png + cargo deps --optional-deps --filter wasmer-wasi wasmer-kernel-loader wasmer-dev-utils wasmer-llvm-backend wasmer-emscripten wasmer-runtime-core wasmer-runtime wasmer-middleware-common wasmer-singlepass-backend wasmer-clif-backend wasmer --manifest-path Cargo.toml | dot -Tpng > wasmer_depgraph.png docs-capi: cd lib/runtime-c-api/ && doxygen doxyfile diff --git a/benches/metering_benchmark.rs b/benches/metering_benchmark.rs index 838df49403a..4a4ee51bea9 100644 --- a/benches/metering_benchmark.rs +++ b/benches/metering_benchmark.rs @@ -169,9 +169,8 @@ fn get_compiler(limit: u64, metering: bool) -> impl Compiler { )))] compile_error!("compiler not specified, activate a compiler via features"); -#[cfg(feature = "backend-cranelift")] fn get_compiler(_limit: u64, metering: bool) -> impl Compiler { - compile_error!("cranelift does not implement metering"); + unimplemented!("cranelift does not implement metering"); use wasmer_clif_backend::CraneliftCompiler; CraneliftCompiler::new() } @@ -226,5 +225,7 @@ fn bench_metering(c: &mut Criterion) { ); } +#[cfg(not(feature = "backend-cranelift"))] criterion_group!(benches, bench_metering); +#[cfg(not(feature = "backend-cranelift"))] criterion_main!(benches); diff --git a/examples/plugin.rs b/examples/plugin.rs index 2695119ae67..8d9dc899505 100644 --- a/examples/plugin.rs +++ b/examples/plugin.rs @@ -1,6 +1,5 @@ use serde::{Deserialize, Serialize}; -use wasmer_runtime::{compile, func, imports, Func}; -use wasmer_runtime_core::vm::Ctx; +use wasmer_runtime::{compile, func, imports, Ctx, Func}; use wasmer_wasi::{ generate_import_object_for_version, state::{self, WasiFile, WasiFsError}, diff --git a/lib/spectests/examples/simple/main.rs b/examples/simple/main.rs similarity index 100% rename from lib/spectests/examples/simple/main.rs rename to examples/simple/main.rs diff --git a/lib/spectests/examples/simple/simple.wasm b/examples/simple/simple.wasm similarity index 100% rename from lib/spectests/examples/simple/simple.wasm rename to examples/simple/simple.wasm diff --git a/lib/spectests/Cargo.toml b/lib/spectests/Cargo.toml deleted file mode 100644 index a4b6576ce4b..00000000000 --- a/lib/spectests/Cargo.toml +++ /dev/null @@ -1,28 +0,0 @@ -[package] -name = "wasmer-spectests" -version = "0.16.2" -description = "Wasmer spectests library" -license = "MIT" -authors = ["The Wasmer Engineering Team "] -repository = "https://github.com/wasmerio/wasmer" -edition = "2018" - -[dependencies] -glob = "0.3" -wasmer-runtime = { path = "../runtime", version = "0.16.2", default-features = false} -wasmer-clif-backend = { path = "../clif-backend", version = "0.16.2", optional = true} -wasmer-llvm-backend = { path = "../llvm-backend", version = "0.16.2", features = ["test"], optional = true } -wasmer-singlepass-backend = { path = "../singlepass-backend", version = "0.16.2", optional = true } - -[build-dependencies] -wabt = "0.9.1" - -[dev-dependencies] -wabt = "0.9.1" - -[features] -default = ["fast-tests"] -fast-tests = [] -clif = ["wasmer-clif-backend", "wasmer-runtime/default-backend-cranelift"] -singlepass = ["wasmer-singlepass-backend", "wasmer-runtime/default-backend-singlepass"] -llvm = ["wasmer-llvm-backend", "wasmer-runtime/default-backend-llvm"] diff --git a/tests/middleware_common.rs b/tests/middleware_common.rs index d5e20a1b963..96e241632d6 100644 --- a/tests/middleware_common.rs +++ b/tests/middleware_common.rs @@ -15,9 +15,6 @@ mod tests { #[cfg(feature = "backend-singlepass")] use wasmer_singlepass_backend::ModuleCodeGenerator as MCG; - #[cfg(feature = "backend-cranelift")] - compile_error!("cranelift does not implement metering yet"); - fn get_compiler(limit: u64) -> impl Compiler { let c: StreamingCompiler = StreamingCompiler::new(move || { let mut chain = MiddlewareChain::new(); @@ -94,7 +91,7 @@ mod tests { "#; #[test] - fn test_points_reduced_after_call() { + fn middleware_test_points_reduced_after_call() { let wasm_binary = wat2wasm(WAT).unwrap(); let limit = 100u64; @@ -135,7 +132,7 @@ mod tests { } #[test] - fn test_traps_after_costly_call() { + fn middleware_test_traps_after_costly_call() { use wasmer_runtime_core::error::RuntimeError; let wasm_binary = wat2wasm(WAT).unwrap(); diff --git a/lib/spectests/examples/test.rs b/tests/override.rs similarity index 84% rename from lib/spectests/examples/test.rs rename to tests/override.rs index eff7793b9b6..ee299ff1632 100644 --- a/lib/spectests/examples/test.rs +++ b/tests/override.rs @@ -1,9 +1,16 @@ use wabt::wat2wasm; -use wasmer_runtime::{compile, ImportObject, Instance}; +use wasmer_runtime::{compile, DynFunc, ImportObject, Instance, Value}; -fn main() { +#[test] +fn override_works() { let instance = create_module_1(); - let result = instance.call("call-overwritten-element", &[]); + let result = instance + .exports + .get::("call-overwritten-element") + .unwrap() + .call(&[]) + .unwrap(); + assert_eq!(result, vec![Value::I32(66)]); println!("result: {:?}", result); } diff --git a/lib/spectests/tests/spectest.rs b/tests/spectest.rs similarity index 99% rename from lib/spectests/tests/spectest.rs rename to tests/spectest.rs index 1748816eda8..5fc126cfa5b 100644 --- a/lib/spectests/tests/spectest.rs +++ b/tests/spectest.rs @@ -72,17 +72,17 @@ mod tests { } } - #[cfg(feature = "clif")] + #[cfg(feature = "backend-cranelift")] fn get_compiler_name() -> &'static str { "clif" } - #[cfg(feature = "llvm")] + #[cfg(feature = "backend-llvm")] fn get_compiler_name() -> &'static str { "llvm" } - #[cfg(feature = "singlepass")] + #[cfg(feature = "backend-singlepass")] fn get_compiler_name() -> &'static str { "singlepass" } @@ -216,7 +216,11 @@ mod tests { } } - #[cfg(not(any(feature = "llvm", feature = "clif", feature = "singlepass")))] + #[cfg(not(any( + feature = "backend-llvm", + feature = "backend-cranelift", + feature = "backend-singlepass" + )))] fn get_compiler_name() -> &'static str { panic!("compiler not specified, activate a compiler via features"); "unknown" @@ -1293,8 +1297,9 @@ mod tests { fn read_excludes() -> (HashMap>, HashSet) { let mut excludes_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")); excludes_path.push("tests"); + excludes_path.push("spectests"); excludes_path.push("excludes.txt"); - let input = File::open(excludes_path).unwrap(); + let input = File::open(dbg!(excludes_path)).unwrap(); let buffered = BufReader::new(input); let mut result = HashMap::new(); let mut file_excludes = HashSet::new(); @@ -1375,6 +1380,7 @@ mod tests { let (excludes, file_excludes) = read_excludes(); let mut glob_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")); + glob_path.push("tests"); glob_path.push("spectests"); glob_path.push("*.wast"); diff --git a/lib/spectests/tests/semantics.rs b/tests/spectest_semantics.rs similarity index 100% rename from lib/spectests/tests/semantics.rs rename to tests/spectest_semantics.rs diff --git a/lib/spectests/spectests/LICENSE b/tests/spectests/LICENSE similarity index 100% rename from lib/spectests/spectests/LICENSE rename to tests/spectests/LICENSE diff --git a/lib/spectests/README.md b/tests/spectests/README.md similarity index 100% rename from lib/spectests/README.md rename to tests/spectests/README.md diff --git a/lib/spectests/spectests/address.wast b/tests/spectests/address.wast similarity index 100% rename from lib/spectests/spectests/address.wast rename to tests/spectests/address.wast diff --git a/lib/spectests/spectests/align.wast b/tests/spectests/align.wast similarity index 100% rename from lib/spectests/spectests/align.wast rename to tests/spectests/align.wast diff --git a/lib/spectests/spectests/atomic.wast b/tests/spectests/atomic.wast similarity index 100% rename from lib/spectests/spectests/atomic.wast rename to tests/spectests/atomic.wast diff --git a/lib/spectests/spectests/binary-leb128.wast b/tests/spectests/binary-leb128.wast similarity index 100% rename from lib/spectests/spectests/binary-leb128.wast rename to tests/spectests/binary-leb128.wast diff --git a/lib/spectests/spectests/binary.wast b/tests/spectests/binary.wast similarity index 100% rename from lib/spectests/spectests/binary.wast rename to tests/spectests/binary.wast diff --git a/lib/spectests/spectests/block.wast b/tests/spectests/block.wast similarity index 100% rename from lib/spectests/spectests/block.wast rename to tests/spectests/block.wast diff --git a/lib/spectests/spectests/br.wast b/tests/spectests/br.wast similarity index 100% rename from lib/spectests/spectests/br.wast rename to tests/spectests/br.wast diff --git a/lib/spectests/spectests/br_if.wast b/tests/spectests/br_if.wast similarity index 100% rename from lib/spectests/spectests/br_if.wast rename to tests/spectests/br_if.wast diff --git a/lib/spectests/spectests/br_table.wast b/tests/spectests/br_table.wast similarity index 100% rename from lib/spectests/spectests/br_table.wast rename to tests/spectests/br_table.wast diff --git a/lib/spectests/spectests/break-drop.wast b/tests/spectests/break-drop.wast similarity index 100% rename from lib/spectests/spectests/break-drop.wast rename to tests/spectests/break-drop.wast diff --git a/lib/spectests/spectests/call.wast b/tests/spectests/call.wast similarity index 100% rename from lib/spectests/spectests/call.wast rename to tests/spectests/call.wast diff --git a/lib/spectests/spectests/call_indirect.wast b/tests/spectests/call_indirect.wast similarity index 100% rename from lib/spectests/spectests/call_indirect.wast rename to tests/spectests/call_indirect.wast diff --git a/lib/spectests/spectests/comments.wast b/tests/spectests/comments.wast similarity index 100% rename from lib/spectests/spectests/comments.wast rename to tests/spectests/comments.wast diff --git a/lib/spectests/spectests/const.wast b/tests/spectests/const.wast similarity index 100% rename from lib/spectests/spectests/const.wast rename to tests/spectests/const.wast diff --git a/lib/spectests/spectests/conversions.wast b/tests/spectests/conversions.wast similarity index 100% rename from lib/spectests/spectests/conversions.wast rename to tests/spectests/conversions.wast diff --git a/lib/spectests/spectests/custom.wast b/tests/spectests/custom.wast similarity index 100% rename from lib/spectests/spectests/custom.wast rename to tests/spectests/custom.wast diff --git a/lib/spectests/spectests/data.wast b/tests/spectests/data.wast similarity index 100% rename from lib/spectests/spectests/data.wast rename to tests/spectests/data.wast diff --git a/lib/spectests/spectests/elem.wast b/tests/spectests/elem.wast similarity index 100% rename from lib/spectests/spectests/elem.wast rename to tests/spectests/elem.wast diff --git a/lib/spectests/spectests/endianness.wast b/tests/spectests/endianness.wast similarity index 100% rename from lib/spectests/spectests/endianness.wast rename to tests/spectests/endianness.wast diff --git a/lib/spectests/tests/excludes.txt b/tests/spectests/excludes.txt similarity index 100% rename from lib/spectests/tests/excludes.txt rename to tests/spectests/excludes.txt diff --git a/lib/spectests/spectests/exports.wast b/tests/spectests/exports.wast similarity index 100% rename from lib/spectests/spectests/exports.wast rename to tests/spectests/exports.wast diff --git a/lib/spectests/spectests/f32.wast b/tests/spectests/f32.wast similarity index 100% rename from lib/spectests/spectests/f32.wast rename to tests/spectests/f32.wast diff --git a/lib/spectests/spectests/f32_bitwise.wast b/tests/spectests/f32_bitwise.wast similarity index 100% rename from lib/spectests/spectests/f32_bitwise.wast rename to tests/spectests/f32_bitwise.wast diff --git a/lib/spectests/spectests/f32_cmp.wast b/tests/spectests/f32_cmp.wast similarity index 100% rename from lib/spectests/spectests/f32_cmp.wast rename to tests/spectests/f32_cmp.wast diff --git a/lib/spectests/spectests/f64.wast b/tests/spectests/f64.wast similarity index 100% rename from lib/spectests/spectests/f64.wast rename to tests/spectests/f64.wast diff --git a/lib/spectests/spectests/f64_bitwise.wast b/tests/spectests/f64_bitwise.wast similarity index 100% rename from lib/spectests/spectests/f64_bitwise.wast rename to tests/spectests/f64_bitwise.wast diff --git a/lib/spectests/spectests/f64_cmp.wast b/tests/spectests/f64_cmp.wast similarity index 100% rename from lib/spectests/spectests/f64_cmp.wast rename to tests/spectests/f64_cmp.wast diff --git a/lib/spectests/spectests/fac.wast b/tests/spectests/fac.wast similarity index 100% rename from lib/spectests/spectests/fac.wast rename to tests/spectests/fac.wast diff --git a/lib/spectests/spectests/float_exprs.wast b/tests/spectests/float_exprs.wast similarity index 100% rename from lib/spectests/spectests/float_exprs.wast rename to tests/spectests/float_exprs.wast diff --git a/lib/spectests/spectests/float_literals.wast b/tests/spectests/float_literals.wast similarity index 100% rename from lib/spectests/spectests/float_literals.wast rename to tests/spectests/float_literals.wast diff --git a/lib/spectests/spectests/float_memory.wast b/tests/spectests/float_memory.wast similarity index 100% rename from lib/spectests/spectests/float_memory.wast rename to tests/spectests/float_memory.wast diff --git a/lib/spectests/spectests/float_misc.wast b/tests/spectests/float_misc.wast similarity index 100% rename from lib/spectests/spectests/float_misc.wast rename to tests/spectests/float_misc.wast diff --git a/lib/spectests/spectests/forward.wast b/tests/spectests/forward.wast similarity index 100% rename from lib/spectests/spectests/forward.wast rename to tests/spectests/forward.wast diff --git a/lib/spectests/spectests/func.wast b/tests/spectests/func.wast similarity index 100% rename from lib/spectests/spectests/func.wast rename to tests/spectests/func.wast diff --git a/lib/spectests/spectests/func_ptrs.wast b/tests/spectests/func_ptrs.wast similarity index 100% rename from lib/spectests/spectests/func_ptrs.wast rename to tests/spectests/func_ptrs.wast diff --git a/lib/spectests/spectests/globals.wast b/tests/spectests/globals.wast similarity index 100% rename from lib/spectests/spectests/globals.wast rename to tests/spectests/globals.wast diff --git a/lib/spectests/spectests/i32.wast b/tests/spectests/i32.wast similarity index 100% rename from lib/spectests/spectests/i32.wast rename to tests/spectests/i32.wast diff --git a/lib/spectests/spectests/i64.wast b/tests/spectests/i64.wast similarity index 100% rename from lib/spectests/spectests/i64.wast rename to tests/spectests/i64.wast diff --git a/lib/spectests/spectests/if.wast b/tests/spectests/if.wast similarity index 100% rename from lib/spectests/spectests/if.wast rename to tests/spectests/if.wast diff --git a/lib/spectests/spectests/imports.wast b/tests/spectests/imports.wast similarity index 100% rename from lib/spectests/spectests/imports.wast rename to tests/spectests/imports.wast diff --git a/lib/spectests/spectests/inline-module.wast b/tests/spectests/inline-module.wast similarity index 100% rename from lib/spectests/spectests/inline-module.wast rename to tests/spectests/inline-module.wast diff --git a/lib/spectests/spectests/int_exprs.wast b/tests/spectests/int_exprs.wast similarity index 100% rename from lib/spectests/spectests/int_exprs.wast rename to tests/spectests/int_exprs.wast diff --git a/lib/spectests/spectests/int_literals.wast b/tests/spectests/int_literals.wast similarity index 100% rename from lib/spectests/spectests/int_literals.wast rename to tests/spectests/int_literals.wast diff --git a/lib/spectests/spectests/labels.wast b/tests/spectests/labels.wast similarity index 100% rename from lib/spectests/spectests/labels.wast rename to tests/spectests/labels.wast diff --git a/lib/spectests/spectests/left-to-right.wast b/tests/spectests/left-to-right.wast similarity index 100% rename from lib/spectests/spectests/left-to-right.wast rename to tests/spectests/left-to-right.wast diff --git a/lib/spectests/spectests/linking.wast b/tests/spectests/linking.wast similarity index 100% rename from lib/spectests/spectests/linking.wast rename to tests/spectests/linking.wast diff --git a/lib/spectests/spectests/load.wast b/tests/spectests/load.wast similarity index 100% rename from lib/spectests/spectests/load.wast rename to tests/spectests/load.wast diff --git a/lib/spectests/spectests/local_get.wast b/tests/spectests/local_get.wast similarity index 100% rename from lib/spectests/spectests/local_get.wast rename to tests/spectests/local_get.wast diff --git a/lib/spectests/spectests/local_set.wast b/tests/spectests/local_set.wast similarity index 100% rename from lib/spectests/spectests/local_set.wast rename to tests/spectests/local_set.wast diff --git a/lib/spectests/spectests/local_tee.wast b/tests/spectests/local_tee.wast similarity index 100% rename from lib/spectests/spectests/local_tee.wast rename to tests/spectests/local_tee.wast diff --git a/lib/spectests/spectests/loop.wast b/tests/spectests/loop.wast similarity index 100% rename from lib/spectests/spectests/loop.wast rename to tests/spectests/loop.wast diff --git a/lib/spectests/spectests/memory.wast b/tests/spectests/memory.wast similarity index 100% rename from lib/spectests/spectests/memory.wast rename to tests/spectests/memory.wast diff --git a/lib/spectests/spectests/memory_grow.wast b/tests/spectests/memory_grow.wast similarity index 100% rename from lib/spectests/spectests/memory_grow.wast rename to tests/spectests/memory_grow.wast diff --git a/lib/spectests/spectests/memory_redundancy.wast b/tests/spectests/memory_redundancy.wast similarity index 100% rename from lib/spectests/spectests/memory_redundancy.wast rename to tests/spectests/memory_redundancy.wast diff --git a/lib/spectests/spectests/memory_size.wast b/tests/spectests/memory_size.wast similarity index 100% rename from lib/spectests/spectests/memory_size.wast rename to tests/spectests/memory_size.wast diff --git a/lib/spectests/spectests/memory_trap.wast b/tests/spectests/memory_trap.wast similarity index 100% rename from lib/spectests/spectests/memory_trap.wast rename to tests/spectests/memory_trap.wast diff --git a/lib/spectests/spectests/names.wast b/tests/spectests/names.wast similarity index 100% rename from lib/spectests/spectests/names.wast rename to tests/spectests/names.wast diff --git a/lib/spectests/spectests/nop.wast b/tests/spectests/nop.wast similarity index 100% rename from lib/spectests/spectests/nop.wast rename to tests/spectests/nop.wast diff --git a/lib/spectests/spectests/return.wast b/tests/spectests/return.wast similarity index 100% rename from lib/spectests/spectests/return.wast rename to tests/spectests/return.wast diff --git a/lib/spectests/spectests/select.wast b/tests/spectests/select.wast similarity index 100% rename from lib/spectests/spectests/select.wast rename to tests/spectests/select.wast diff --git a/lib/spectests/spectests/simd.wast b/tests/spectests/simd.wast similarity index 100% rename from lib/spectests/spectests/simd.wast rename to tests/spectests/simd.wast diff --git a/lib/spectests/spectests/simd_binaryen.wast b/tests/spectests/simd_binaryen.wast similarity index 100% rename from lib/spectests/spectests/simd_binaryen.wast rename to tests/spectests/simd_binaryen.wast diff --git a/lib/spectests/spectests/skip-stack-guard-page.wast b/tests/spectests/skip-stack-guard-page.wast similarity index 100% rename from lib/spectests/spectests/skip-stack-guard-page.wast rename to tests/spectests/skip-stack-guard-page.wast diff --git a/lib/spectests/spectests/stack.wast b/tests/spectests/stack.wast similarity index 100% rename from lib/spectests/spectests/stack.wast rename to tests/spectests/stack.wast diff --git a/lib/spectests/spectests/start.wast b/tests/spectests/start.wast similarity index 100% rename from lib/spectests/spectests/start.wast rename to tests/spectests/start.wast diff --git a/lib/spectests/spectests/store.wast b/tests/spectests/store.wast similarity index 100% rename from lib/spectests/spectests/store.wast rename to tests/spectests/store.wast diff --git a/lib/spectests/spectests/switch.wast b/tests/spectests/switch.wast similarity index 100% rename from lib/spectests/spectests/switch.wast rename to tests/spectests/switch.wast diff --git a/lib/spectests/spectests/token.wast b/tests/spectests/token.wast similarity index 100% rename from lib/spectests/spectests/token.wast rename to tests/spectests/token.wast diff --git a/lib/spectests/spectests/traps.wast b/tests/spectests/traps.wast similarity index 100% rename from lib/spectests/spectests/traps.wast rename to tests/spectests/traps.wast diff --git a/lib/spectests/spectests/type.wast b/tests/spectests/type.wast similarity index 100% rename from lib/spectests/spectests/type.wast rename to tests/spectests/type.wast diff --git a/lib/spectests/spectests/unreachable.wast b/tests/spectests/unreachable.wast similarity index 100% rename from lib/spectests/spectests/unreachable.wast rename to tests/spectests/unreachable.wast diff --git a/lib/spectests/spectests/unreached-invalid.wast b/tests/spectests/unreached-invalid.wast similarity index 100% rename from lib/spectests/spectests/unreached-invalid.wast rename to tests/spectests/unreached-invalid.wast diff --git a/lib/spectests/spectests/unwind.wast b/tests/spectests/unwind.wast similarity index 100% rename from lib/spectests/spectests/unwind.wast rename to tests/spectests/unwind.wast diff --git a/lib/spectests/spectests/utf8-custom-section-id.wast b/tests/spectests/utf8-custom-section-id.wast similarity index 100% rename from lib/spectests/spectests/utf8-custom-section-id.wast rename to tests/spectests/utf8-custom-section-id.wast diff --git a/lib/spectests/spectests/utf8-import-field.wast b/tests/spectests/utf8-import-field.wast similarity index 100% rename from lib/spectests/spectests/utf8-import-field.wast rename to tests/spectests/utf8-import-field.wast diff --git a/lib/spectests/spectests/utf8-import-module.wast b/tests/spectests/utf8-import-module.wast similarity index 100% rename from lib/spectests/spectests/utf8-import-module.wast rename to tests/spectests/utf8-import-module.wast diff --git a/lib/spectests/spectests/utf8-invalid-encoding.wast b/tests/spectests/utf8-invalid-encoding.wast similarity index 100% rename from lib/spectests/spectests/utf8-invalid-encoding.wast rename to tests/spectests/utf8-invalid-encoding.wast diff --git a/lib/spectests/spectests/wasmer.wast b/tests/spectests/wasmer.wast similarity index 100% rename from lib/spectests/spectests/wasmer.wast rename to tests/spectests/wasmer.wast diff --git a/tests/wasitests/README.md b/tests/wasitests/README.md index c7d135cca24..921f50c864d 100644 --- a/tests/wasitests/README.md +++ b/tests/wasitests/README.md @@ -2,4 +2,4 @@ Most of the files here are generated. `_common.rs` is a file containing a macro that the generated tests use to avoid code duplication. -If you want to add new features, edit `_common.rs` and `wasi-tests/build/wasitests.rs` to use the changed macro. +If you want to add new features, edit `_common.rs` to change the macro or `tests/generate-wasi-tests` to change anything else. From 52cbb60743444c45aa56ef6e51f3c1ed471ef9b6 Mon Sep 17 00:00:00 2001 From: Mark McCaskey Date: Fri, 3 Apr 2020 16:27:49 -0700 Subject: [PATCH 04/12] Fix up tests for CI --- Makefile | 11 +- benches/metering_benchmark.rs | 1 + ci/docker/x86_64-linux-android/Dockerfile | 1 + lib/emscripten/src/syscalls/unix.rs | 8 +- lib/emscripten/src/time.rs | 2 +- tests/imports.rs | 2 + tests/spectest.rs | 226 +++++++++++------- tests/wasitests/snapshot1_close_preopen_fd.rs | 6 +- tests/wasitests/snapshot1_create_dir.rs | 1 - tests/wasitests/snapshot1_envvar.rs | 3 +- tests/wasitests/snapshot1_fd_allocate.rs | 6 +- tests/wasitests/snapshot1_fd_append.rs | 6 +- tests/wasitests/snapshot1_fd_close.rs | 6 +- tests/wasitests/snapshot1_fd_pread.rs | 6 +- tests/wasitests/snapshot1_fd_read.rs | 6 +- tests/wasitests/snapshot1_fd_sync.rs | 6 +- tests/wasitests/snapshot1_file_metadata.rs | 1 - tests/wasitests/snapshot1_fs_sandbox_test.rs | 1 - tests/wasitests/snapshot1_fseek.rs | 6 +- tests/wasitests/snapshot1_hello.rs | 1 - tests/wasitests/snapshot1_isatty.rs | 1 - tests/wasitests/snapshot1_mapdir.rs | 6 +- tests/wasitests/snapshot1_path_link.rs | 12 +- tests/wasitests/snapshot1_path_rename.rs | 6 +- tests/wasitests/snapshot1_path_symlink.rs | 12 +- tests/wasitests/snapshot1_poll_oneoff.rs | 12 +- tests/wasitests/snapshot1_quine.rs | 1 - tests/wasitests/snapshot1_readlink.rs | 6 +- .../snapshot1_wasi_sees_virtual_root.rs | 16 +- tests/wasitests/snapshot1_writing.rs | 16 +- tests/wasitests/unstable_close_preopen_fd.rs | 6 +- tests/wasitests/unstable_create_dir.rs | 1 - tests/wasitests/unstable_envvar.rs | 3 +- tests/wasitests/unstable_fd_allocate.rs | 6 +- tests/wasitests/unstable_fd_append.rs | 6 +- tests/wasitests/unstable_fd_close.rs | 6 +- tests/wasitests/unstable_fd_pread.rs | 6 +- tests/wasitests/unstable_fd_read.rs | 6 +- tests/wasitests/unstable_fd_sync.rs | 6 +- tests/wasitests/unstable_file_metadata.rs | 1 - tests/wasitests/unstable_fs_sandbox_test.rs | 1 - tests/wasitests/unstable_fseek.rs | 6 +- tests/wasitests/unstable_hello.rs | 1 - tests/wasitests/unstable_isatty.rs | 1 - tests/wasitests/unstable_mapdir.rs | 6 +- tests/wasitests/unstable_path_link.rs | 12 +- tests/wasitests/unstable_path_rename.rs | 6 +- tests/wasitests/unstable_path_symlink.rs | 12 +- tests/wasitests/unstable_poll_oneoff.rs | 12 +- tests/wasitests/unstable_quine.rs | 1 - tests/wasitests/unstable_readlink.rs | 6 +- .../unstable_wasi_sees_virtual_root.rs | 16 +- tests/wasitests/unstable_writing.rs | 16 +- 53 files changed, 365 insertions(+), 172 deletions(-) diff --git a/Makefile b/Makefile index 736746e63ab..b5ae65bf916 100644 --- a/Makefile +++ b/Makefile @@ -35,13 +35,18 @@ generate: generate-emtests generate-wasitests # Spectests spectests-singlepass: - cargo test test_run_spectests --release --no-default-features --features "wasi backend-singlepass" -- --nocapture --test-threads 1 + SPECTEST_TEST_SINGLEPASS=1 cargo test test_run_spectests --release --no-default-features --features "wasi backend-singlepass" -- --nocapture --test-threads 1 spectests-cranelift: cargo test test_run_spectests --release --no-default-features --features "wasi backend-cranelift" -- --nocapture spectests-llvm: - cargo test test_run_spectests --release --no-default-features --features "wasi backend-llvm" -- --nocapture + SPECTEST_TEST_LLVM=1 cargo test test_run_spectests --release --no-default-features --features "wasi backend-llvm wasmer-llvm-backend/test" -- --nocapture + +spectests-all: + SPECTEST_TEST_CLIF=1 SPECTEST_TEST_LLVM=1 SPECTEST_TEST_SINGLEPASS=1 \ + cargo test test_run_spectests --release --no-default-features --features "wasi backend-cranelift backend-singlepass backend-llvm wasmer-llvm-backend/test" -- --nocapture --test-threads 1 + spectests: spectests-singlepass spectests-cranelift spectests-llvm @@ -81,7 +86,7 @@ wasitests-setup: mkdir -p tests/wasi_test_resources/test_fs/temp wasitests-singlepass: wasitests-setup - cargo test wasitest --release --no-default-features --features "wasi singlepass" -- --test-threads=1 + cargo test wasitest --release --no-default-features --features "wasi backend-singlepass" -- --test-threads=1 wasitests-cranelift: wasitests-setup cargo test wasitest --release --no-default-features --features "wasi backend-cranelift" -- --test-threads=1 --nocapture diff --git a/benches/metering_benchmark.rs b/benches/metering_benchmark.rs index 4a4ee51bea9..a2384bcd310 100644 --- a/benches/metering_benchmark.rs +++ b/benches/metering_benchmark.rs @@ -169,6 +169,7 @@ fn get_compiler(limit: u64, metering: bool) -> impl Compiler { )))] compile_error!("compiler not specified, activate a compiler via features"); +#[cfg(feature = "backend-cranelift")] fn get_compiler(_limit: u64, metering: bool) -> impl Compiler { unimplemented!("cranelift does not implement metering"); use wasmer_clif_backend::CraneliftCompiler; diff --git a/ci/docker/x86_64-linux-android/Dockerfile b/ci/docker/x86_64-linux-android/Dockerfile index d8f89b13f6d..2ccc1baac0e 100644 --- a/ci/docker/x86_64-linux-android/Dockerfile +++ b/ci/docker/x86_64-linux-android/Dockerfile @@ -5,6 +5,7 @@ RUN apt-get update && \ ca-certificates \ curl \ gcc \ + g++ \ libc-dev \ python \ unzip \ diff --git a/lib/emscripten/src/syscalls/unix.rs b/lib/emscripten/src/syscalls/unix.rs index 80dfb31a7b5..d9ea55858d6 100644 --- a/lib/emscripten/src/syscalls/unix.rs +++ b/lib/emscripten/src/syscalls/unix.rs @@ -140,10 +140,12 @@ extern "C" { pub fn lstat(path: *const libc::c_char, buf: *mut stat) -> c_int; } +#[cfg(not(any(target_os = "freebsd", target_os = "macos", target_os = "android")))] +use libc::fallocate; #[cfg(target_os = "freebsd")] use libc::madvise; #[cfg(not(any(target_os = "freebsd", target_os = "macos")))] -use libc::{fallocate, fdatasync, ftruncate64, lstat, madvise, wait4}; +use libc::{fdatasync, ftruncate64, lstat, madvise, wait4}; // Another conditional constant for name resolution: Macos et iOS use // SO_NOSIGPIPE as a setsockopt flag to disable SIGPIPE emission on socket. @@ -1131,11 +1133,11 @@ pub fn ___syscall324(ctx: &mut Ctx, _which: c_int, mut varargs: VarArgs) -> c_in let _mode: c_int = varargs.get(ctx); let _offset: off_t = varargs.get(ctx); let _len: off_t = varargs.get(ctx); - #[cfg(not(any(target_os = "freebsd", target_os = "macos")))] + #[cfg(not(any(target_os = "freebsd", target_os = "macos", target_os = "android")))] unsafe { fallocate(_fd, _mode, _offset, _len) } - #[cfg(any(target_os = "freebsd", target_os = "macos"))] + #[cfg(any(target_os = "freebsd", target_os = "macos", target_os = "android"))] { unimplemented!("emscripten::___syscall324 (fallocate) {}", _which) } diff --git a/lib/emscripten/src/time.rs b/lib/emscripten/src/time.rs index be6beee4da7..c341d4be83b 100644 --- a/lib/emscripten/src/time.rs +++ b/lib/emscripten/src/time.rs @@ -28,7 +28,7 @@ use time; use super::env; use wasmer_runtime_core::vm::Ctx; -#[cfg(target_os = "linux")] +#[cfg(any(target_os = "linux", target_os = "android"))] use libc::{CLOCK_MONOTONIC, CLOCK_MONOTONIC_COARSE, CLOCK_REALTIME}; #[cfg(target_os = "freebsd")] diff --git a/tests/imports.rs b/tests/imports.rs index 7903d433f0f..51f28393013 100644 --- a/tests/imports.rs +++ b/tests/imports.rs @@ -100,6 +100,7 @@ const SHIFT: i32 = 10; #[allow(non_upper_case_globals)] const shift: i32 = 100; +#[cfg(all(unix, target_arch = "x86_64"))] fn imported_functions_forms(test: &dyn Fn(&Instance)) { const MODULE: &str = r#" (module @@ -391,6 +392,7 @@ fn callback_fn_trap_with_vmctx(vmctx: &mut vm::Ctx, n: i32) -> Result $output:ty, ( $( $arguments:expr ),* ) == $expected_value:expr) => { + #[cfg(all(unix, target_arch = "x86_64"))] #[test] fn $test_name() { imported_functions_forms(&|instance| { diff --git a/tests/spectest.rs b/tests/spectest.rs index 5fc126cfa5b..f1812443ae2 100644 --- a/tests/spectest.rs +++ b/tests/spectest.rs @@ -7,6 +7,13 @@ unreachable_patterns )] +#[cfg(not(any( + feature = "backend-llvm", + feature = "backend-cranelift", + feature = "backend-singlepass" +)))] +compile_error!("No compiler backend detected: please specify at least one compiler backend!"); + #[cfg(test)] mod tests { @@ -19,6 +26,7 @@ mod tests { // TODO Allow running WAST &str directly (E.g. for use outside of spectests) use std::collections::HashSet; + use std::env; use std::sync::{Arc, Mutex}; struct SpecFailure { @@ -72,19 +80,36 @@ mod tests { } } - #[cfg(feature = "backend-cranelift")] - fn get_compiler_name() -> &'static str { - "clif" + fn get_available_compilers() -> &'static [&'static str] { + &[ + #[cfg(feature = "backend-cranelift")] + "clif", + #[cfg(feature = "backend-llvm")] + "llvm", + #[cfg(feature = "backend-singlepass")] + "singlepass", + ] } - #[cfg(feature = "backend-llvm")] - fn get_compiler_name() -> &'static str { - "llvm" - } + fn get_compilers_to_test() -> Vec<&'static str> { + let mut out = vec![]; + if let Ok(v) = env::var("SPECTEST_TEST_CLIF") { + if v == "1" { + out.push("clif"); + } + } + if let Ok(v) = env::var("SPECTEST_TEST_LLVM") { + if v == "1" { + out.push("llvm"); + } + } + if let Ok(v) = env::var("SPECTEST_TEST_SINGLEPASS") { + if v == "1" { + out.push("singlepass"); + } + } - #[cfg(feature = "backend-singlepass")] - fn get_compiler_name() -> &'static str { - "singlepass" + out } #[cfg(unix)] @@ -216,16 +241,6 @@ mod tests { } } - #[cfg(not(any( - feature = "backend-llvm", - feature = "backend-cranelift", - feature = "backend-singlepass" - )))] - fn get_compiler_name() -> &'static str { - panic!("compiler not specified, activate a compiler via features"); - "unknown" - } - fn with_instance( maybe_instance: Option>>, named_modules: &HashMap>>, @@ -249,15 +264,16 @@ mod tests { use std::fs; use std::panic::AssertUnwindSafe; use std::path::PathBuf; + use std::str::FromStr; use wabt::script::{Action, Command, CommandKind, ScriptParser, Value}; use wasmer_runtime::{ - compile_with_config, + compile_with_config_with, compiler_for_backend, error::CompileError, func, imports, types::{ElementType, MemoryDescriptor, TableDescriptor}, units::Pages, - CompilerConfig, Ctx, Export, Features, Global, ImportObject, Instance, LikeNamespace, - Memory, Table, + Backend, CompilerConfig, Ctx, Export, Features, Global, ImportObject, Instance, + LikeNamespace, Memory, Table, }; fn format_panic(e: &dyn std::any::Any) -> String { @@ -274,6 +290,7 @@ mod tests { path: &PathBuf, file_excludes: &HashSet, excludes: &HashMap>, + backend: &'static str, ) -> Result { let mut test_report = TestReport { failures: vec![], @@ -310,8 +327,12 @@ mod tests { .map(|file| file.iter().map(|x| Some(x.clone())).collect()) .unwrap_or(vec![]); let excludes = &mut excludes; - - let backend = get_compiler_name(); + let backend_enum = Backend::from_str(if backend == "clif" { + "cranelift" + } else { + backend + }) + .unwrap(); while let Some(Command { kind, line }) = parser.next().map_err(|e| format!("Parse err: {:?}", e))? @@ -344,8 +365,11 @@ mod tests { enable_verification: true, ..Default::default() }; - let module = compile_with_config(&module.into_vec(), config) - .expect("WASM can't be compiled"); + + let compiler = compiler_for_backend(backend_enum).unwrap(); + let module = + compile_with_config_with(&module.into_vec(), config, &*compiler) + .expect("WASM can't be compiled"); let i = module .instantiate(&spectest_import_object) .expect("WASM can't be instantiated"); @@ -784,7 +808,9 @@ mod tests { enable_verification: true, ..Default::default() }; - compile_with_config(&module.into_vec(), config) + + let compiler = compiler_for_backend(backend_enum).unwrap(); + compile_with_config_with(&module.into_vec(), config, &*compiler) }); match result { Ok(module) => { @@ -838,7 +864,9 @@ mod tests { enable_verification: true, ..Default::default() }; - compile_with_config(&module.into_vec(), config) + + let compiler = compiler_for_backend(backend_enum).unwrap(); + compile_with_config_with(&module.into_vec(), config, &*compiler) }); match result { @@ -891,7 +919,9 @@ mod tests { enable_verification: true, ..Default::default() }; - let module = compile_with_config(&module.into_vec(), config) + + let compiler = compiler_for_backend(backend_enum).unwrap(); + let module = compile_with_config_with(&module.into_vec(), config, &*compiler) .expect("WASM can't be compiled"); let result = panic::catch_unwind(AssertUnwindSafe(|| { module @@ -988,8 +1018,11 @@ mod tests { enable_verification: true, ..Default::default() }; - let module = compile_with_config(&module.into_vec(), config) - .expect("WASM can't be compiled"); + + let compiler = compiler_for_backend(backend_enum).unwrap(); + let module = + compile_with_config_with(&module.into_vec(), config, &*compiler) + .expect("WASM can't be compiled"); module.instantiate(&spectest_import_object) })); match result { @@ -1294,16 +1327,15 @@ mod tests { use std::io::{BufRead, BufReader}; /// Reads the excludes.txt file into a hash map - fn read_excludes() -> (HashMap>, HashSet) { + fn read_excludes(current_backend: &str) -> (HashMap>, HashSet) { let mut excludes_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")); excludes_path.push("tests"); excludes_path.push("spectests"); excludes_path.push("excludes.txt"); - let input = File::open(dbg!(excludes_path)).unwrap(); + let input = File::open(excludes_path).unwrap(); let buffered = BufReader::new(input); let mut result = HashMap::new(); let mut file_excludes = HashSet::new(); - let current_backend = get_compiler_name(); let current_target_os = get_target_os(); let current_target_family = get_target_family(); let current_target_arch = get_target_arch(); @@ -1374,72 +1406,96 @@ mod tests { #[test] fn test_run_spectests() { - let mut success = true; - let mut test_reports = vec![]; - - let (excludes, file_excludes) = read_excludes(); - let mut glob_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")); glob_path.push("tests"); glob_path.push("spectests"); glob_path.push("*.wast"); + let available_compilers = get_available_compilers() + .iter() + .cloned() + .collect::>(); + let desired_compilers = get_compilers_to_test(); + // default to testing all enabled compilers + let compilers_to_test = if desired_compilers.is_empty() { + available_compilers.iter().cloned().collect::>() + } else { + desired_compilers + .iter() + .cloned() + .filter(|c| available_compilers.contains(c)) + .collect::>() + }; + + // if we've asked to run specific compilers, make sure they're all actually enabled + if !desired_compilers.is_empty() && desired_compilers.len() != compilers_to_test.len() { + panic!("Asked to run spectests with `{:?}` compilers but `{:?}` compilers are enabled (found {} of them: {:?})", desired_compilers, get_compilers_to_test(), compilers_to_test.len(), compilers_to_test); + } + let glob_str = glob_path.to_str().unwrap(); - for entry in glob(glob_str).expect("Failed to read glob pattern") { - match entry { - Ok(wast_path) => { - let result = parse_and_run(&wast_path, &file_excludes, &excludes); - match result { - Ok(test_report) => { - if test_report.has_failures() { - success = false + for backend in compilers_to_test { + println!("Testing `{}` backend", backend); + let (excludes, file_excludes) = read_excludes(backend); + let mut test_reports = vec![]; + let mut success = true; + for entry in glob(glob_str).expect("Failed to read glob pattern") { + match entry { + Ok(wast_path) => { + let result = parse_and_run(&wast_path, &file_excludes, &excludes, backend); + match result { + Ok(test_report) => { + if test_report.has_failures() { + success = false + } + test_reports.push(test_report); + } + Err(e) => { + success = false; + println!("Unexpected test run error: {:?}", e) } - test_reports.push(test_report); - } - Err(e) => { - success = false; - println!("Unexpected test run error: {:?}", e) } } + Err(e) => panic!("glob err: {:?}", e), } - Err(e) => panic!("glob err: {:?}", e), } - } - // Print summary - let mut failures = vec![]; - let mut total_passed = 0; - let mut total_failed = 0; - let mut total_allowed_failures = 0; - for mut test_report in test_reports.into_iter() { - total_passed += test_report.passed; - total_failed += test_report.failed; - total_allowed_failures += test_report.allowed_failure; - failures.append(&mut test_report.failures); - } + // Print summary + let mut failures = vec![]; + let mut total_passed = 0; + let mut total_failed = 0; + let mut total_allowed_failures = 0; + for mut test_report in test_reports.into_iter() { + total_passed += test_report.passed; + total_failed += test_report.failed; + total_allowed_failures += test_report.allowed_failure; + failures.append(&mut test_report.failures); + } - println!(""); - println!("Failures:"); - let backend = get_compiler_name(); - for failure in failures.iter() { - // To print excludes for all failures: + println!(""); + println!("{} backend results:", backend); + println!("Failures:"); + for failure in failures.iter() { + // To print excludes for all failures: + println!( + "{}:fail:{}:{} # {} - {}", + backend, failure.file, failure.line, failure.kind, failure.message + ); + } + println!(""); + println!(""); + println!("Spec tests summary report: "); println!( - "{}:fail:{}:{} # {} - {}", - backend, failure.file, failure.line, failure.kind, failure.message + "total: {}", + total_passed + total_failed + total_allowed_failures ); + println!("passed: {}", total_passed); + println!("failed: {}", total_failed); + println!("allowed failures: {}", total_allowed_failures); + println!(""); + println!("Tests {}.", if success { "passed" } else { "failed" }); + println!(""); + assert!(success, "tests passed") } - println!(""); - println!(""); - println!("Spec tests summary report: "); - println!( - "total: {}", - total_passed + total_failed + total_allowed_failures - ); - println!("passed: {}", total_passed); - println!("failed: {}", total_failed); - println!("allowed failures: {}", total_allowed_failures); - println!(""); - assert!(success, "tests passed") } /// Bit pattern of an f32 value: diff --git a/tests/wasitests/snapshot1_close_preopen_fd.rs b/tests/wasitests/snapshot1_close_preopen_fd.rs index b44a3375fd1..232d4ec0bf3 100644 --- a/tests/wasitests/snapshot1_close_preopen_fd.rs +++ b/tests/wasitests/snapshot1_close_preopen_fd.rs @@ -2,7 +2,6 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] #[ignore] fn test_snapshot1_close_preopen_fd() { @@ -10,7 +9,10 @@ fn test_snapshot1_close_preopen_fd() { "../wasi_test_resources/snapshot1/close_preopen_fd.wasm", "snapshot1_close_preopen_fd", vec![], - vec![("hamlet".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),], + vec![( + "hamlet".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet") + ),], vec![], "../wasi_test_resources/close_preopen_fd.out" ); diff --git a/tests/wasitests/snapshot1_create_dir.rs b/tests/wasitests/snapshot1_create_dir.rs index b55905356be..bb665e296cc 100644 --- a/tests/wasitests/snapshot1_create_dir.rs +++ b/tests/wasitests/snapshot1_create_dir.rs @@ -2,7 +2,6 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_snapshot1_create_dir() { assert_wasi_output!( diff --git a/tests/wasitests/snapshot1_envvar.rs b/tests/wasitests/snapshot1_envvar.rs index dc32954eb14..cecf52017e4 100644 --- a/tests/wasitests/snapshot1_envvar.rs +++ b/tests/wasitests/snapshot1_envvar.rs @@ -2,7 +2,6 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_snapshot1_envvar() { assert_wasi_output!( @@ -10,7 +9,7 @@ fn test_snapshot1_envvar() { "snapshot1_envvar", vec![], vec![], - vec!["DOG=1".to_string(),"CAT=2".to_string(),], + vec!["DOG=1".to_string(), "CAT=2".to_string(),], "../wasi_test_resources/envvar.out" ); } diff --git a/tests/wasitests/snapshot1_fd_allocate.rs b/tests/wasitests/snapshot1_fd_allocate.rs index a9a86b11ced..631adc917c5 100644 --- a/tests/wasitests/snapshot1_fd_allocate.rs +++ b/tests/wasitests/snapshot1_fd_allocate.rs @@ -2,7 +2,6 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] #[ignore] fn test_snapshot1_fd_allocate() { @@ -10,7 +9,10 @@ fn test_snapshot1_fd_allocate() { "../wasi_test_resources/snapshot1/fd_allocate.wasm", "snapshot1_fd_allocate", vec![], - vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp")),], + vec![( + ".".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp") + ),], vec![], "../wasi_test_resources/fd_allocate.out" ); diff --git a/tests/wasitests/snapshot1_fd_append.rs b/tests/wasitests/snapshot1_fd_append.rs index 645da14ed5c..800cb1ad371 100644 --- a/tests/wasitests/snapshot1_fd_append.rs +++ b/tests/wasitests/snapshot1_fd_append.rs @@ -2,14 +2,16 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_snapshot1_fd_append() { assert_wasi_output!( "../wasi_test_resources/snapshot1/fd_append.wasm", "snapshot1_fd_append", vec![], - vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp")),], + vec![( + ".".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp") + ),], vec![], "../wasi_test_resources/fd_append.out" ); diff --git a/tests/wasitests/snapshot1_fd_close.rs b/tests/wasitests/snapshot1_fd_close.rs index 32a46a98f7b..76494cd169b 100644 --- a/tests/wasitests/snapshot1_fd_close.rs +++ b/tests/wasitests/snapshot1_fd_close.rs @@ -2,7 +2,6 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] #[ignore] fn test_snapshot1_fd_close() { @@ -10,7 +9,10 @@ fn test_snapshot1_fd_close() { "../wasi_test_resources/snapshot1/fd_close.wasm", "snapshot1_fd_close", vec![], - vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),], + vec![( + ".".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet") + ),], vec![], "../wasi_test_resources/fd_close.out" ); diff --git a/tests/wasitests/snapshot1_fd_pread.rs b/tests/wasitests/snapshot1_fd_pread.rs index 95dcf7d9893..2c0f019562f 100644 --- a/tests/wasitests/snapshot1_fd_pread.rs +++ b/tests/wasitests/snapshot1_fd_pread.rs @@ -2,7 +2,6 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] #[ignore] fn test_snapshot1_fd_pread() { @@ -10,7 +9,10 @@ fn test_snapshot1_fd_pread() { "../wasi_test_resources/snapshot1/fd_pread.wasm", "snapshot1_fd_pread", vec![], - vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),], + vec![( + ".".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet") + ),], vec![], "../wasi_test_resources/fd_pread.out" ); diff --git a/tests/wasitests/snapshot1_fd_read.rs b/tests/wasitests/snapshot1_fd_read.rs index eb6ef923bb7..68c7d3a8a57 100644 --- a/tests/wasitests/snapshot1_fd_read.rs +++ b/tests/wasitests/snapshot1_fd_read.rs @@ -2,7 +2,6 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] #[ignore] fn test_snapshot1_fd_read() { @@ -10,7 +9,10 @@ fn test_snapshot1_fd_read() { "../wasi_test_resources/snapshot1/fd_read.wasm", "snapshot1_fd_read", vec![], - vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),], + vec![( + ".".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet") + ),], vec![], "../wasi_test_resources/fd_read.out" ); diff --git a/tests/wasitests/snapshot1_fd_sync.rs b/tests/wasitests/snapshot1_fd_sync.rs index 07a7b0a3255..abda06f32c0 100644 --- a/tests/wasitests/snapshot1_fd_sync.rs +++ b/tests/wasitests/snapshot1_fd_sync.rs @@ -2,14 +2,16 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_snapshot1_fd_sync() { assert_wasi_output!( "../wasi_test_resources/snapshot1/fd_sync.wasm", "snapshot1_fd_sync", vec![], - vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp")),], + vec![( + ".".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp") + ),], vec![], "../wasi_test_resources/fd_sync.out" ); diff --git a/tests/wasitests/snapshot1_file_metadata.rs b/tests/wasitests/snapshot1_file_metadata.rs index 2793d3e1200..9a15fcdfc1b 100644 --- a/tests/wasitests/snapshot1_file_metadata.rs +++ b/tests/wasitests/snapshot1_file_metadata.rs @@ -2,7 +2,6 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_snapshot1_file_metadata() { assert_wasi_output!( diff --git a/tests/wasitests/snapshot1_fs_sandbox_test.rs b/tests/wasitests/snapshot1_fs_sandbox_test.rs index 600ba1b5d39..80bac275207 100644 --- a/tests/wasitests/snapshot1_fs_sandbox_test.rs +++ b/tests/wasitests/snapshot1_fs_sandbox_test.rs @@ -2,7 +2,6 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_snapshot1_fs_sandbox_test() { assert_wasi_output!( diff --git a/tests/wasitests/snapshot1_fseek.rs b/tests/wasitests/snapshot1_fseek.rs index 58d2838ccf4..6258e07fef2 100644 --- a/tests/wasitests/snapshot1_fseek.rs +++ b/tests/wasitests/snapshot1_fseek.rs @@ -2,14 +2,16 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_snapshot1_fseek() { assert_wasi_output!( "../wasi_test_resources/snapshot1/fseek.wasm", "snapshot1_fseek", vec![], - vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),], + vec![( + ".".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet") + ),], vec![], "../wasi_test_resources/fseek.out" ); diff --git a/tests/wasitests/snapshot1_hello.rs b/tests/wasitests/snapshot1_hello.rs index 0e869db1594..0522b9344ae 100644 --- a/tests/wasitests/snapshot1_hello.rs +++ b/tests/wasitests/snapshot1_hello.rs @@ -2,7 +2,6 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_snapshot1_hello() { assert_wasi_output!( diff --git a/tests/wasitests/snapshot1_isatty.rs b/tests/wasitests/snapshot1_isatty.rs index b5d888706c7..19262845407 100644 --- a/tests/wasitests/snapshot1_isatty.rs +++ b/tests/wasitests/snapshot1_isatty.rs @@ -2,7 +2,6 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_snapshot1_isatty() { assert_wasi_output!( diff --git a/tests/wasitests/snapshot1_mapdir.rs b/tests/wasitests/snapshot1_mapdir.rs index e20c240da18..9ac9074d162 100644 --- a/tests/wasitests/snapshot1_mapdir.rs +++ b/tests/wasitests/snapshot1_mapdir.rs @@ -2,14 +2,16 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_snapshot1_mapdir() { assert_wasi_output!( "../wasi_test_resources/snapshot1/mapdir.wasm", "snapshot1_mapdir", vec![], - vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),], + vec![( + ".".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet") + ),], vec![], "../wasi_test_resources/mapdir.out" ); diff --git a/tests/wasitests/snapshot1_path_link.rs b/tests/wasitests/snapshot1_path_link.rs index cf958cbdb32..c919c34586c 100644 --- a/tests/wasitests/snapshot1_path_link.rs +++ b/tests/wasitests/snapshot1_path_link.rs @@ -2,14 +2,22 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_snapshot1_path_link() { assert_wasi_output!( "../wasi_test_resources/snapshot1/path_link.wasm", "snapshot1_path_link", vec![], - vec![("act5".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act5")),("temp".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp")),], + vec![ + ( + "act5".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act5") + ), + ( + "temp".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp") + ), + ], vec![], "../wasi_test_resources/path_link.out" ); diff --git a/tests/wasitests/snapshot1_path_rename.rs b/tests/wasitests/snapshot1_path_rename.rs index 1fc705c23af..406c4b6f694 100644 --- a/tests/wasitests/snapshot1_path_rename.rs +++ b/tests/wasitests/snapshot1_path_rename.rs @@ -2,14 +2,16 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_snapshot1_path_rename() { assert_wasi_output!( "../wasi_test_resources/snapshot1/path_rename.wasm", "snapshot1_path_rename", vec![], - vec![("temp".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp")),], + vec![( + "temp".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp") + ),], vec![], "../wasi_test_resources/path_rename.out" ); diff --git a/tests/wasitests/snapshot1_path_symlink.rs b/tests/wasitests/snapshot1_path_symlink.rs index e8837c0e393..f5f2c8c4c52 100644 --- a/tests/wasitests/snapshot1_path_symlink.rs +++ b/tests/wasitests/snapshot1_path_symlink.rs @@ -2,14 +2,22 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_snapshot1_path_symlink() { assert_wasi_output!( "../wasi_test_resources/snapshot1/path_symlink.wasm", "snapshot1_path_symlink", vec![], - vec![("temp".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp")),("hamlet".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),], + vec![ + ( + "temp".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp") + ), + ( + "hamlet".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet") + ), + ], vec![], "../wasi_test_resources/path_symlink.out" ); diff --git a/tests/wasitests/snapshot1_poll_oneoff.rs b/tests/wasitests/snapshot1_poll_oneoff.rs index c51b56469c4..be7f55b9ab4 100644 --- a/tests/wasitests/snapshot1_poll_oneoff.rs +++ b/tests/wasitests/snapshot1_poll_oneoff.rs @@ -2,7 +2,6 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] #[ignore] fn test_snapshot1_poll_oneoff() { @@ -10,7 +9,16 @@ fn test_snapshot1_poll_oneoff() { "../wasi_test_resources/snapshot1/poll_oneoff.wasm", "snapshot1_poll_oneoff", vec![], - vec![("hamlet".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),("temp".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp")),], + vec![ + ( + "hamlet".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet") + ), + ( + "temp".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp") + ), + ], vec![], "../wasi_test_resources/poll_oneoff.out" ); diff --git a/tests/wasitests/snapshot1_quine.rs b/tests/wasitests/snapshot1_quine.rs index 8389e6f1bff..8ba0cd8d02e 100644 --- a/tests/wasitests/snapshot1_quine.rs +++ b/tests/wasitests/snapshot1_quine.rs @@ -2,7 +2,6 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_snapshot1_quine() { assert_wasi_output!( diff --git a/tests/wasitests/snapshot1_readlink.rs b/tests/wasitests/snapshot1_readlink.rs index 4655b19f4c0..ec97fce81d5 100644 --- a/tests/wasitests/snapshot1_readlink.rs +++ b/tests/wasitests/snapshot1_readlink.rs @@ -2,14 +2,16 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_snapshot1_readlink() { assert_wasi_output!( "../wasi_test_resources/snapshot1/readlink.wasm", "snapshot1_readlink", vec![], - vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),], + vec![( + ".".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet") + ),], vec![], "../wasi_test_resources/readlink.out" ); diff --git a/tests/wasitests/snapshot1_wasi_sees_virtual_root.rs b/tests/wasitests/snapshot1_wasi_sees_virtual_root.rs index 25e160c4efe..87a33b02289 100644 --- a/tests/wasitests/snapshot1_wasi_sees_virtual_root.rs +++ b/tests/wasitests/snapshot1_wasi_sees_virtual_root.rs @@ -2,14 +2,26 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_snapshot1_wasi_sees_virtual_root() { assert_wasi_output!( "../wasi_test_resources/snapshot1/wasi_sees_virtual_root.wasm", "snapshot1_wasi_sees_virtual_root", vec![], - vec![("act1".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act1")),("act2".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act2")),("act1-again".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act1")),], + vec![ + ( + "act1".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act1") + ), + ( + "act2".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act2") + ), + ( + "act1-again".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act1") + ), + ], vec![], "../wasi_test_resources/wasi_sees_virtual_root.out" ); diff --git a/tests/wasitests/snapshot1_writing.rs b/tests/wasitests/snapshot1_writing.rs index c0d242563c0..971142fbde2 100644 --- a/tests/wasitests/snapshot1_writing.rs +++ b/tests/wasitests/snapshot1_writing.rs @@ -2,14 +2,26 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_snapshot1_writing() { assert_wasi_output!( "../wasi_test_resources/snapshot1/writing.wasm", "snapshot1_writing", vec![], - vec![("act1".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act1")),("act2".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act2")),("act1-again".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act1")),], + vec![ + ( + "act1".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act1") + ), + ( + "act2".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act2") + ), + ( + "act1-again".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act1") + ), + ], vec![], "../wasi_test_resources/writing.out" ); diff --git a/tests/wasitests/unstable_close_preopen_fd.rs b/tests/wasitests/unstable_close_preopen_fd.rs index 423d7ce4b0c..2945d14aa7c 100644 --- a/tests/wasitests/unstable_close_preopen_fd.rs +++ b/tests/wasitests/unstable_close_preopen_fd.rs @@ -2,14 +2,16 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_unstable_close_preopen_fd() { assert_wasi_output!( "../wasi_test_resources/unstable/close_preopen_fd.wasm", "unstable_close_preopen_fd", vec![], - vec![("hamlet".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),], + vec![( + "hamlet".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet") + ),], vec![], "../wasi_test_resources/close_preopen_fd.out" ); diff --git a/tests/wasitests/unstable_create_dir.rs b/tests/wasitests/unstable_create_dir.rs index fa36290863e..47f51d2129c 100644 --- a/tests/wasitests/unstable_create_dir.rs +++ b/tests/wasitests/unstable_create_dir.rs @@ -2,7 +2,6 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_unstable_create_dir() { assert_wasi_output!( diff --git a/tests/wasitests/unstable_envvar.rs b/tests/wasitests/unstable_envvar.rs index 1df2e55f517..b4088afbeb1 100644 --- a/tests/wasitests/unstable_envvar.rs +++ b/tests/wasitests/unstable_envvar.rs @@ -2,7 +2,6 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_unstable_envvar() { assert_wasi_output!( @@ -10,7 +9,7 @@ fn test_unstable_envvar() { "unstable_envvar", vec![], vec![], - vec!["DOG=1".to_string(),"CAT=2".to_string(),], + vec!["DOG=1".to_string(), "CAT=2".to_string(),], "../wasi_test_resources/envvar.out" ); } diff --git a/tests/wasitests/unstable_fd_allocate.rs b/tests/wasitests/unstable_fd_allocate.rs index a4281eebf17..2a55ac499fa 100644 --- a/tests/wasitests/unstable_fd_allocate.rs +++ b/tests/wasitests/unstable_fd_allocate.rs @@ -2,14 +2,16 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_unstable_fd_allocate() { assert_wasi_output!( "../wasi_test_resources/unstable/fd_allocate.wasm", "unstable_fd_allocate", vec![], - vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp")),], + vec![( + ".".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp") + ),], vec![], "../wasi_test_resources/fd_allocate.out" ); diff --git a/tests/wasitests/unstable_fd_append.rs b/tests/wasitests/unstable_fd_append.rs index 7f786f684da..f5c5b8c8f34 100644 --- a/tests/wasitests/unstable_fd_append.rs +++ b/tests/wasitests/unstable_fd_append.rs @@ -2,14 +2,16 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_unstable_fd_append() { assert_wasi_output!( "../wasi_test_resources/unstable/fd_append.wasm", "unstable_fd_append", vec![], - vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp")),], + vec![( + ".".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp") + ),], vec![], "../wasi_test_resources/fd_append.out" ); diff --git a/tests/wasitests/unstable_fd_close.rs b/tests/wasitests/unstable_fd_close.rs index 4f9ba5aec58..3114823a953 100644 --- a/tests/wasitests/unstable_fd_close.rs +++ b/tests/wasitests/unstable_fd_close.rs @@ -2,14 +2,16 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_unstable_fd_close() { assert_wasi_output!( "../wasi_test_resources/unstable/fd_close.wasm", "unstable_fd_close", vec![], - vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),], + vec![( + ".".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet") + ),], vec![], "../wasi_test_resources/fd_close.out" ); diff --git a/tests/wasitests/unstable_fd_pread.rs b/tests/wasitests/unstable_fd_pread.rs index 930a332dfbe..9725a0409bb 100644 --- a/tests/wasitests/unstable_fd_pread.rs +++ b/tests/wasitests/unstable_fd_pread.rs @@ -2,14 +2,16 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_unstable_fd_pread() { assert_wasi_output!( "../wasi_test_resources/unstable/fd_pread.wasm", "unstable_fd_pread", vec![], - vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),], + vec![( + ".".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet") + ),], vec![], "../wasi_test_resources/fd_pread.out" ); diff --git a/tests/wasitests/unstable_fd_read.rs b/tests/wasitests/unstable_fd_read.rs index 876a3906a37..fbfba15b05d 100644 --- a/tests/wasitests/unstable_fd_read.rs +++ b/tests/wasitests/unstable_fd_read.rs @@ -2,14 +2,16 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_unstable_fd_read() { assert_wasi_output!( "../wasi_test_resources/unstable/fd_read.wasm", "unstable_fd_read", vec![], - vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),], + vec![( + ".".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet") + ),], vec![], "../wasi_test_resources/fd_read.out" ); diff --git a/tests/wasitests/unstable_fd_sync.rs b/tests/wasitests/unstable_fd_sync.rs index 9862434ce8a..020b545f5aa 100644 --- a/tests/wasitests/unstable_fd_sync.rs +++ b/tests/wasitests/unstable_fd_sync.rs @@ -2,14 +2,16 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_unstable_fd_sync() { assert_wasi_output!( "../wasi_test_resources/unstable/fd_sync.wasm", "unstable_fd_sync", vec![], - vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp")),], + vec![( + ".".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp") + ),], vec![], "../wasi_test_resources/fd_sync.out" ); diff --git a/tests/wasitests/unstable_file_metadata.rs b/tests/wasitests/unstable_file_metadata.rs index b8cc4701860..91ba1bc2969 100644 --- a/tests/wasitests/unstable_file_metadata.rs +++ b/tests/wasitests/unstable_file_metadata.rs @@ -2,7 +2,6 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_unstable_file_metadata() { assert_wasi_output!( diff --git a/tests/wasitests/unstable_fs_sandbox_test.rs b/tests/wasitests/unstable_fs_sandbox_test.rs index f478b7e4c68..82048a3c8bc 100644 --- a/tests/wasitests/unstable_fs_sandbox_test.rs +++ b/tests/wasitests/unstable_fs_sandbox_test.rs @@ -2,7 +2,6 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_unstable_fs_sandbox_test() { assert_wasi_output!( diff --git a/tests/wasitests/unstable_fseek.rs b/tests/wasitests/unstable_fseek.rs index cb457469f24..282c67de7c8 100644 --- a/tests/wasitests/unstable_fseek.rs +++ b/tests/wasitests/unstable_fseek.rs @@ -2,14 +2,16 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_unstable_fseek() { assert_wasi_output!( "../wasi_test_resources/unstable/fseek.wasm", "unstable_fseek", vec![], - vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),], + vec![( + ".".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet") + ),], vec![], "../wasi_test_resources/fseek.out" ); diff --git a/tests/wasitests/unstable_hello.rs b/tests/wasitests/unstable_hello.rs index 4aa58526a5b..93f6629069c 100644 --- a/tests/wasitests/unstable_hello.rs +++ b/tests/wasitests/unstable_hello.rs @@ -2,7 +2,6 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_unstable_hello() { assert_wasi_output!( diff --git a/tests/wasitests/unstable_isatty.rs b/tests/wasitests/unstable_isatty.rs index 07fabd454ea..9313980dbd9 100644 --- a/tests/wasitests/unstable_isatty.rs +++ b/tests/wasitests/unstable_isatty.rs @@ -2,7 +2,6 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_unstable_isatty() { assert_wasi_output!( diff --git a/tests/wasitests/unstable_mapdir.rs b/tests/wasitests/unstable_mapdir.rs index 3ca14c9e321..69b51e60926 100644 --- a/tests/wasitests/unstable_mapdir.rs +++ b/tests/wasitests/unstable_mapdir.rs @@ -2,14 +2,16 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_unstable_mapdir() { assert_wasi_output!( "../wasi_test_resources/unstable/mapdir.wasm", "unstable_mapdir", vec![], - vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),], + vec![( + ".".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet") + ),], vec![], "../wasi_test_resources/mapdir.out" ); diff --git a/tests/wasitests/unstable_path_link.rs b/tests/wasitests/unstable_path_link.rs index 4158d4b0c8c..340fa3c5529 100644 --- a/tests/wasitests/unstable_path_link.rs +++ b/tests/wasitests/unstable_path_link.rs @@ -2,14 +2,22 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_unstable_path_link() { assert_wasi_output!( "../wasi_test_resources/unstable/path_link.wasm", "unstable_path_link", vec![], - vec![("act5".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act5")),("temp".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp")),], + vec![ + ( + "act5".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act5") + ), + ( + "temp".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp") + ), + ], vec![], "../wasi_test_resources/path_link.out" ); diff --git a/tests/wasitests/unstable_path_rename.rs b/tests/wasitests/unstable_path_rename.rs index 62171d0dc99..51c194d17e4 100644 --- a/tests/wasitests/unstable_path_rename.rs +++ b/tests/wasitests/unstable_path_rename.rs @@ -2,14 +2,16 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_unstable_path_rename() { assert_wasi_output!( "../wasi_test_resources/unstable/path_rename.wasm", "unstable_path_rename", vec![], - vec![("temp".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp")),], + vec![( + "temp".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp") + ),], vec![], "../wasi_test_resources/path_rename.out" ); diff --git a/tests/wasitests/unstable_path_symlink.rs b/tests/wasitests/unstable_path_symlink.rs index f8f3b2c86d2..2bafcd8b0a3 100644 --- a/tests/wasitests/unstable_path_symlink.rs +++ b/tests/wasitests/unstable_path_symlink.rs @@ -2,14 +2,22 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_unstable_path_symlink() { assert_wasi_output!( "../wasi_test_resources/unstable/path_symlink.wasm", "unstable_path_symlink", vec![], - vec![("temp".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp")),("hamlet".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),], + vec![ + ( + "temp".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp") + ), + ( + "hamlet".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet") + ), + ], vec![], "../wasi_test_resources/path_symlink.out" ); diff --git a/tests/wasitests/unstable_poll_oneoff.rs b/tests/wasitests/unstable_poll_oneoff.rs index 81603d00ab7..00e9d8fd2c0 100644 --- a/tests/wasitests/unstable_poll_oneoff.rs +++ b/tests/wasitests/unstable_poll_oneoff.rs @@ -2,14 +2,22 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_unstable_poll_oneoff() { assert_wasi_output!( "../wasi_test_resources/unstable/poll_oneoff.wasm", "unstable_poll_oneoff", vec![], - vec![("hamlet".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),("temp".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp")),], + vec![ + ( + "hamlet".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet") + ), + ( + "temp".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/temp") + ), + ], vec![], "../wasi_test_resources/poll_oneoff.out" ); diff --git a/tests/wasitests/unstable_quine.rs b/tests/wasitests/unstable_quine.rs index 3db685b800d..ea0adac47ea 100644 --- a/tests/wasitests/unstable_quine.rs +++ b/tests/wasitests/unstable_quine.rs @@ -2,7 +2,6 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_unstable_quine() { assert_wasi_output!( diff --git a/tests/wasitests/unstable_readlink.rs b/tests/wasitests/unstable_readlink.rs index 4f8449cf738..c9a15afefa4 100644 --- a/tests/wasitests/unstable_readlink.rs +++ b/tests/wasitests/unstable_readlink.rs @@ -2,14 +2,16 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_unstable_readlink() { assert_wasi_output!( "../wasi_test_resources/unstable/readlink.wasm", "unstable_readlink", vec![], - vec![(".".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet")),], + vec![( + ".".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet") + ),], vec![], "../wasi_test_resources/readlink.out" ); diff --git a/tests/wasitests/unstable_wasi_sees_virtual_root.rs b/tests/wasitests/unstable_wasi_sees_virtual_root.rs index 719de8260f8..68affa54c97 100644 --- a/tests/wasitests/unstable_wasi_sees_virtual_root.rs +++ b/tests/wasitests/unstable_wasi_sees_virtual_root.rs @@ -2,14 +2,26 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_unstable_wasi_sees_virtual_root() { assert_wasi_output!( "../wasi_test_resources/unstable/wasi_sees_virtual_root.wasm", "unstable_wasi_sees_virtual_root", vec![], - vec![("act1".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act1")),("act2".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act2")),("act1-again".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act1")),], + vec![ + ( + "act1".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act1") + ), + ( + "act2".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act2") + ), + ( + "act1-again".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act1") + ), + ], vec![], "../wasi_test_resources/wasi_sees_virtual_root.out" ); diff --git a/tests/wasitests/unstable_writing.rs b/tests/wasitests/unstable_writing.rs index 91d8640709f..e3124333d9e 100644 --- a/tests/wasitests/unstable_writing.rs +++ b/tests/wasitests/unstable_writing.rs @@ -2,14 +2,26 @@ // ANY MANUAL EDITS MAY BE OVERWRITTEN AT ANY TIME // Files autogenerated with cargo build. - #[test] fn test_unstable_writing() { assert_wasi_output!( "../wasi_test_resources/unstable/writing.wasm", "unstable_writing", vec![], - vec![("act1".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act1")),("act2".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act2")),("act1-again".to_string(), ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act1")),], + vec![ + ( + "act1".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act1") + ), + ( + "act2".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act2") + ), + ( + "act1-again".to_string(), + ::std::path::PathBuf::from("tests/wasi_test_resources/test_fs/hamlet/act1") + ), + ], vec![], "../wasi_test_resources/writing.out" ); From 9d312f45007cd41c739df409b24249796cecbaff Mon Sep 17 00:00:00 2001 From: Mark McCaskey Date: Mon, 6 Apr 2020 12:35:08 -0700 Subject: [PATCH 05/12] Add support for android in spectests --- tests/spectest.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/spectest.rs b/tests/spectest.rs index f1812443ae2..517aefe62e4 100644 --- a/tests/spectest.rs +++ b/tests/spectest.rs @@ -122,6 +122,11 @@ mod tests { "windows" } + #[cfg(target_os = "android")] + fn get_target_os() -> &'static str { + "android" + } + #[cfg(target_os = "freebsd")] fn get_target_os() -> &'static str { "freebsd" From b6011d5dc4b1bf6ec98b72a6372c75ddd75146a0 Mon Sep 17 00:00:00 2001 From: Mark McCaskey Date: Mon, 6 Apr 2020 14:13:54 -0700 Subject: [PATCH 06/12] Only run runtime_core tests on Android --- Makefile | 2 +- tests/exception_handling.rs | 24 +- tests/imports.rs | 448 ++++++++++++++++++------------------ 3 files changed, 240 insertions(+), 234 deletions(-) diff --git a/Makefile b/Makefile index b5ae65bf916..a6b40165a6c 100644 --- a/Makefile +++ b/Makefile @@ -169,7 +169,7 @@ test: spectests emtests middleware wasitests test-rest examples test-android: ci/run-docker.sh x86_64-linux-android --manifest-path=lib/singlepass-backend/Cargo.toml - ci/run-docker.sh x86_64-linux-android + ci/run-docker.sh x86_64-linux-android runtime_core # Integration tests integration-tests: release-clif examples diff --git a/tests/exception_handling.rs b/tests/exception_handling.rs index 4001183a2c7..edb686495d7 100644 --- a/tests/exception_handling.rs +++ b/tests/exception_handling.rs @@ -1,23 +1,25 @@ mod runtime_core_tests; -use runtime_core_tests::{get_compiler, wat2wasm}; -use wasmer_runtime_core::{compile_with, imports}; +pub mod runtime_core_exception_handling { + use super::runtime_core_tests::{get_compiler, wat2wasm}; + use wasmer_runtime_core::{compile_with, imports}; -#[test] -fn exception_handling_works() { - const MODULE: &str = r#" + #[test] + fn exception_handling_works() { + const MODULE: &str = r#" (module (func (export "throw_trap") unreachable )) "#; - let wasm_binary = wat2wasm(MODULE.as_bytes()).expect("WAST not valid or malformed"); - let module = compile_with(&wasm_binary, &get_compiler()).unwrap(); + let wasm_binary = wat2wasm(MODULE.as_bytes()).expect("WAST not valid or malformed"); + let module = compile_with(&wasm_binary, &get_compiler()).unwrap(); - let imports = imports! {}; - for _ in 0..2 { - let instance = module.instantiate(&imports).unwrap(); - assert!(instance.call("throw_trap", &[]).is_err()); + let imports = imports! {}; + for _ in 0..2 { + let instance = module.instantiate(&imports).unwrap(); + assert!(instance.call("throw_trap", &[]).is_err()); + } } } diff --git a/tests/imports.rs b/tests/imports.rs index 51f28393013..92fe7383513 100644 --- a/tests/imports.rs +++ b/tests/imports.rs @@ -1,22 +1,25 @@ mod runtime_core_tests; -use runtime_core_tests::{get_compiler, wat2wasm}; -use std::{convert::TryInto, sync::Arc}; -use wasmer_runtime_core::{ - compile_with, - error::RuntimeError, - global::Global, - imports, - memory::Memory, - typed_func::{DynamicFunc, Func}, - types::{FuncSig, MemoryDescriptor, Type, Value}, - units::Pages, - vm, DynFunc, Instance, -}; - -#[test] -fn new_api_works() { - let wasm = r#" +#[cfg(test)] +pub mod runtime_core_imports { + + use super::runtime_core_tests::{get_compiler, wat2wasm}; + use std::{convert::TryInto, sync::Arc}; + use wasmer_runtime_core::{ + compile_with, + error::RuntimeError, + global::Global, + imports, + memory::Memory, + typed_func::{DynamicFunc, Func}, + types::{FuncSig, MemoryDescriptor, Type, Value}, + units::Pages, + vm, DynFunc, Instance, + }; + + #[test] + fn runtime_core_new_api_works() { + let wasm = r#" (module (type $type (func (param i32) (result i32))) (global (export "my_global") i32 (i32.const 45)) @@ -27,22 +30,22 @@ fn new_api_works() { (i32.mul (get_local 0) (i32.const 2))) )"#; - let wasm_binary = wat2wasm(wasm.as_bytes()).expect("WAST not valid or malformed"); - let module = compile_with(&wasm_binary, &get_compiler()).unwrap(); - let import_object = imports! {}; - let instance = module.instantiate(&import_object).unwrap(); - - let my_global: Global = instance.exports.get("my_global").unwrap(); - assert_eq!(my_global.get(), Value::I32(45)); - let double: Func = instance.exports.get("double").unwrap(); - assert_eq!(double.call(5).unwrap(), 10); - let add_one: DynFunc = instance.exports.get("add_one").unwrap(); - assert_eq!(add_one.call(&[Value::I32(5)]).unwrap(), &[Value::I32(6)]); - let add_one_memory: Result = instance.exports.get("my_global"); - assert!(add_one_memory.is_err()); -} + let wasm_binary = wat2wasm(wasm.as_bytes()).expect("WAST not valid or malformed"); + let module = compile_with(&wasm_binary, &get_compiler()).unwrap(); + let import_object = imports! {}; + let instance = module.instantiate(&import_object).unwrap(); + + let my_global: Global = instance.exports.get("my_global").unwrap(); + assert_eq!(my_global.get(), Value::I32(45)); + let double: Func = instance.exports.get("double").unwrap(); + assert_eq!(double.call(5).unwrap(), 10); + let add_one: DynFunc = instance.exports.get("add_one").unwrap(); + assert_eq!(add_one.call(&[Value::I32(5)]).unwrap(), &[Value::I32(6)]); + let add_one_memory: Result = instance.exports.get("my_global"); + assert!(add_one_memory.is_err()); + } -macro_rules! call_and_assert { + macro_rules! call_and_assert { ($instance:ident, $function:ident( $( $inputs:ty ),* ) -> $output:ty, ( $( $arguments:expr ),* ) == $expected_value:expr) => { #[allow(unused_parens)] let $function: Func<( $( $inputs ),* ), $output> = $instance.exports.get(stringify!($function)).expect(concat!("Failed to get the `", stringify!($function), "` export function.")); @@ -89,20 +92,20 @@ macro_rules! call_and_assert { }; } -/// The shift that is set in the instance memory. The value is part of -/// the result returned by the imported functions if the memory is -/// read properly. -const SHIFT: i32 = 10; + /// The shift that is set in the instance memory. The value is part of + /// the result returned by the imported functions if the memory is + /// read properly. + const SHIFT: i32 = 10; -/// The shift that is captured in the environment of a closure. The -/// value is part of the result returned by the imported function if -/// the closure captures its environment properly. -#[allow(non_upper_case_globals)] -const shift: i32 = 100; + /// The shift that is captured in the environment of a closure. The + /// value is part of the result returned by the imported function if + /// the closure captures its environment properly. + #[allow(non_upper_case_globals)] + const shift: i32 = 100; -#[cfg(all(unix, target_arch = "x86_64"))] -fn imported_functions_forms(test: &dyn Fn(&Instance)) { - const MODULE: &str = r#" + #[cfg(all(unix, target_arch = "x86_64"))] + fn imported_functions_forms(test: &dyn Fn(&Instance)) { + const MODULE: &str = r#" (module (type $type (func (param i32) (result i32))) (import "env" "memory" (memory 1 1)) @@ -203,194 +206,194 @@ fn imported_functions_forms(test: &dyn Fn(&Instance)) { call $callback_closure_trap_with_vmctx_and_env)) "#; - let wasm_binary = wat2wasm(MODULE.as_bytes()).expect("WAST not valid or malformed"); - let module = compile_with(&wasm_binary, &get_compiler()).unwrap(); - let memory_descriptor = MemoryDescriptor::new(Pages(1), Some(Pages(1)), false).unwrap(); - let memory = Memory::new(memory_descriptor).unwrap(); - - memory.view()[0].set(SHIFT); - - let import_object = imports! { - "env" => { - "memory" => memory.clone(), - - // Regular function. - "callback_fn" => Func::new(callback_fn), - - // Closure without a captured environment. - "callback_closure" => Func::new(|n: i32| -> Result { - Ok(n + 1) - }), - - // Regular polymorphic function. - "callback_fn_dynamic" => DynamicFunc::new( - Arc::new(FuncSig::new(vec![Type::I32], vec![Type::I32])), - callback_fn_dynamic, - ), - - // Polymorphic function that panics. - "callback_fn_dynamic_panic" => DynamicFunc::new( - Arc::new(FuncSig::new(vec![Type::I32], vec![Type::I32])), - callback_fn_dynamic_panic, - ), - - // Polymorphic closure “closures”. - "callback_closure_dynamic_0" => DynamicFunc::new( - Arc::new(FuncSig::new(vec![], vec![])), - |_, inputs: &[Value]| -> Vec { - assert!(inputs.is_empty()); - - vec![] - } - ), - "callback_closure_dynamic_1" => DynamicFunc::new( - Arc::new(FuncSig::new(vec![Type::I32], vec![Type::I32])), - move |vmctx: &mut vm::Ctx, inputs: &[Value]| -> Vec { - assert_eq!(inputs.len(), 1); - - let memory = vmctx.memory(0); + let wasm_binary = wat2wasm(MODULE.as_bytes()).expect("WAST not valid or malformed"); + let module = compile_with(&wasm_binary, &get_compiler()).unwrap(); + let memory_descriptor = MemoryDescriptor::new(Pages(1), Some(Pages(1)), false).unwrap(); + let memory = Memory::new(memory_descriptor).unwrap(); + + memory.view()[0].set(SHIFT); + + let import_object = imports! { + "env" => { + "memory" => memory.clone(), + + // Regular function. + "callback_fn" => Func::new(callback_fn), + + // Closure without a captured environment. + "callback_closure" => Func::new(|n: i32| -> Result { + Ok(n + 1) + }), + + // Regular polymorphic function. + "callback_fn_dynamic" => DynamicFunc::new( + Arc::new(FuncSig::new(vec![Type::I32], vec![Type::I32])), + callback_fn_dynamic, + ), + + // Polymorphic function that panics. + "callback_fn_dynamic_panic" => DynamicFunc::new( + Arc::new(FuncSig::new(vec![Type::I32], vec![Type::I32])), + callback_fn_dynamic_panic, + ), + + // Polymorphic closure “closures”. + "callback_closure_dynamic_0" => DynamicFunc::new( + Arc::new(FuncSig::new(vec![], vec![])), + |_, inputs: &[Value]| -> Vec { + assert!(inputs.is_empty()); + + vec![] + } + ), + "callback_closure_dynamic_1" => DynamicFunc::new( + Arc::new(FuncSig::new(vec![Type::I32], vec![Type::I32])), + move |vmctx: &mut vm::Ctx, inputs: &[Value]| -> Vec { + assert_eq!(inputs.len(), 1); + + let memory = vmctx.memory(0); + let shift_ = shift + memory.view::()[0].get(); + let n: i32 = (&inputs[0]).try_into().unwrap(); + + vec![Value::I32(shift_ + n)] + } + ), + "callback_closure_dynamic_2" => DynamicFunc::new( + Arc::new(FuncSig::new(vec![Type::I32, Type::I64], vec![Type::I64])), + move |vmctx: &mut vm::Ctx, inputs: &[Value]| -> Vec { + assert_eq!(inputs.len(), 2); + + let memory = vmctx.memory(0); + let shift_ = shift + memory.view::()[0].get(); + let i: i32 = (&inputs[0]).try_into().unwrap(); + let j: i64 = (&inputs[1]).try_into().unwrap(); + + vec![Value::I64(shift_ as i64 + i as i64 + j)] + } + ), + "callback_closure_dynamic_3" => DynamicFunc::new( + Arc::new(FuncSig::new(vec![Type::I32, Type::I64, Type::F32], vec![Type::F32])), + move |vmctx: &mut vm::Ctx, inputs: &[Value]| -> Vec { + assert_eq!(inputs.len(), 3); + + let memory = vmctx.memory(0); + let shift_ = shift + memory.view::()[0].get(); + let i: i32 = (&inputs[0]).try_into().unwrap(); + let j: i64 = (&inputs[1]).try_into().unwrap(); + let k: f32 = (&inputs[2]).try_into().unwrap(); + + vec![Value::F32(shift_ as f32 + i as f32 + j as f32 + k)] + } + ), + "callback_closure_dynamic_4" => DynamicFunc::new( + Arc::new(FuncSig::new(vec![Type::I32, Type::I64, Type::F32, Type::F64], vec![Type::F64])), + move |vmctx: &mut vm::Ctx, inputs: &[Value]| -> Vec { + assert_eq!(inputs.len(), 4); + + let memory = vmctx.memory(0); + let shift_ = shift + memory.view::()[0].get(); + let i: i32 = (&inputs[0]).try_into().unwrap(); + let j: i64 = (&inputs[1]).try_into().unwrap(); + let k: f32 = (&inputs[2]).try_into().unwrap(); + let l: f64 = (&inputs[3]).try_into().unwrap(); + + vec![Value::F64(shift_ as f64 + i as f64 + j as f64 + k as f64 + l)] + } + ), + + // Closure with a captured environment (a single variable + an instance of `Memory`). + "callback_closure_with_env" => Func::new(move |n: i32| -> Result { let shift_ = shift + memory.view::()[0].get(); - let n: i32 = (&inputs[0]).try_into().unwrap(); - - vec![Value::I32(shift_ + n)] - } - ), - "callback_closure_dynamic_2" => DynamicFunc::new( - Arc::new(FuncSig::new(vec![Type::I32, Type::I64], vec![Type::I64])), - move |vmctx: &mut vm::Ctx, inputs: &[Value]| -> Vec { - assert_eq!(inputs.len(), 2); - let memory = vmctx.memory(0); - let shift_ = shift + memory.view::()[0].get(); - let i: i32 = (&inputs[0]).try_into().unwrap(); - let j: i64 = (&inputs[1]).try_into().unwrap(); + Ok(shift_ + n + 1) + }), - vec![Value::I64(shift_ as i64 + i as i64 + j)] - } - ), - "callback_closure_dynamic_3" => DynamicFunc::new( - Arc::new(FuncSig::new(vec![Type::I32, Type::I64, Type::F32], vec![Type::F32])), - move |vmctx: &mut vm::Ctx, inputs: &[Value]| -> Vec { - assert_eq!(inputs.len(), 3); + // Regular function with an explicit `vmctx`. + "callback_fn_with_vmctx" => Func::new(callback_fn_with_vmctx), + // Closure without a captured environment but with an explicit `vmctx`. + "callback_closure_with_vmctx" => Func::new(|vmctx: &mut vm::Ctx, n: i32| -> Result { let memory = vmctx.memory(0); - let shift_ = shift + memory.view::()[0].get(); - let i: i32 = (&inputs[0]).try_into().unwrap(); - let j: i64 = (&inputs[1]).try_into().unwrap(); - let k: f32 = (&inputs[2]).try_into().unwrap(); + let shift_: i32 = memory.view()[0].get(); - vec![Value::F32(shift_ as f32 + i as f32 + j as f32 + k)] - } - ), - "callback_closure_dynamic_4" => DynamicFunc::new( - Arc::new(FuncSig::new(vec![Type::I32, Type::I64, Type::F32, Type::F64], vec![Type::F64])), - move |vmctx: &mut vm::Ctx, inputs: &[Value]| -> Vec { - assert_eq!(inputs.len(), 4); + Ok(shift_ + n + 1) + }), + // Closure with a captured environment (a single variable) and with an explicit `vmctx`. + "callback_closure_with_vmctx_and_env" => Func::new(move |vmctx: &mut vm::Ctx, n: i32| -> Result { let memory = vmctx.memory(0); let shift_ = shift + memory.view::()[0].get(); - let i: i32 = (&inputs[0]).try_into().unwrap(); - let j: i64 = (&inputs[1]).try_into().unwrap(); - let k: f32 = (&inputs[2]).try_into().unwrap(); - let l: f64 = (&inputs[3]).try_into().unwrap(); - vec![Value::F64(shift_ as f64 + i as f64 + j as f64 + k as f64 + l)] - } - ), - - // Closure with a captured environment (a single variable + an instance of `Memory`). - "callback_closure_with_env" => Func::new(move |n: i32| -> Result { - let shift_ = shift + memory.view::()[0].get(); - - Ok(shift_ + n + 1) - }), - - // Regular function with an explicit `vmctx`. - "callback_fn_with_vmctx" => Func::new(callback_fn_with_vmctx), - - // Closure without a captured environment but with an explicit `vmctx`. - "callback_closure_with_vmctx" => Func::new(|vmctx: &mut vm::Ctx, n: i32| -> Result { - let memory = vmctx.memory(0); - let shift_: i32 = memory.view()[0].get(); - - Ok(shift_ + n + 1) - }), + Ok(shift_ + n + 1) + }), - // Closure with a captured environment (a single variable) and with an explicit `vmctx`. - "callback_closure_with_vmctx_and_env" => Func::new(move |vmctx: &mut vm::Ctx, n: i32| -> Result { - let memory = vmctx.memory(0); - let shift_ = shift + memory.view::()[0].get(); + // Trap a regular function. + "callback_fn_trap" => Func::new(callback_fn_trap), - Ok(shift_ + n + 1) - }), + // Trap a closure without a captured environment. + "callback_closure_trap" => Func::new(|n: i32| -> Result { + Err(format!("bar {}", n + 1)) + }), - // Trap a regular function. - "callback_fn_trap" => Func::new(callback_fn_trap), + // Trap a regular function with an explicit `vmctx`. + "callback_fn_trap_with_vmctx" => Func::new(callback_fn_trap_with_vmctx), - // Trap a closure without a captured environment. - "callback_closure_trap" => Func::new(|n: i32| -> Result { - Err(format!("bar {}", n + 1)) - }), - - // Trap a regular function with an explicit `vmctx`. - "callback_fn_trap_with_vmctx" => Func::new(callback_fn_trap_with_vmctx), - - // Trap a closure without a captured environment but with an explicit `vmctx`. - "callback_closure_trap_with_vmctx" => Func::new(|vmctx: &mut vm::Ctx, n: i32| -> Result { - let memory = vmctx.memory(0); - let shift_: i32 = memory.view()[0].get(); + // Trap a closure without a captured environment but with an explicit `vmctx`. + "callback_closure_trap_with_vmctx" => Func::new(|vmctx: &mut vm::Ctx, n: i32| -> Result { + let memory = vmctx.memory(0); + let shift_: i32 = memory.view()[0].get(); - Err(format!("qux {}", shift_ + n + 1)) - }), + Err(format!("qux {}", shift_ + n + 1)) + }), - // Trap a closure with a captured environment (a single variable) and with an explicit `vmctx`. - "callback_closure_trap_with_vmctx_and_env" => Func::new(move |vmctx: &mut vm::Ctx, n: i32| -> Result { - let memory = vmctx.memory(0); - let shift_ = shift + memory.view::()[0].get(); + // Trap a closure with a captured environment (a single variable) and with an explicit `vmctx`. + "callback_closure_trap_with_vmctx_and_env" => Func::new(move |vmctx: &mut vm::Ctx, n: i32| -> Result { + let memory = vmctx.memory(0); + let shift_ = shift + memory.view::()[0].get(); - Err(format!("! {}", shift_ + n + 1)) - }), - }, - }; - let instance = module.instantiate(&import_object).unwrap(); + Err(format!("! {}", shift_ + n + 1)) + }), + }, + }; + let instance = module.instantiate(&import_object).unwrap(); - test(&instance); -} + test(&instance); + } -fn callback_fn(n: i32) -> Result { - Ok(n + 1) -} + fn callback_fn(n: i32) -> Result { + Ok(n + 1) + } -fn callback_fn_dynamic(_: &mut vm::Ctx, inputs: &[Value]) -> Vec { - match inputs[0] { - Value::I32(x) => vec![Value::I32(x + 1)], - _ => unreachable!(), + fn callback_fn_dynamic(_: &mut vm::Ctx, inputs: &[Value]) -> Vec { + match inputs[0] { + Value::I32(x) => vec![Value::I32(x + 1)], + _ => unreachable!(), + } } -} -fn callback_fn_dynamic_panic(_: &mut vm::Ctx, _: &[Value]) -> Vec { - panic!("test"); -} + fn callback_fn_dynamic_panic(_: &mut vm::Ctx, _: &[Value]) -> Vec { + panic!("test"); + } -fn callback_fn_with_vmctx(vmctx: &mut vm::Ctx, n: i32) -> Result { - let memory = vmctx.memory(0); - let shift_: i32 = memory.view()[0].get(); + fn callback_fn_with_vmctx(vmctx: &mut vm::Ctx, n: i32) -> Result { + let memory = vmctx.memory(0); + let shift_: i32 = memory.view()[0].get(); - Ok(shift_ + n + 1) -} + Ok(shift_ + n + 1) + } -fn callback_fn_trap(n: i32) -> Result { - Err(format!("foo {}", n + 1)) -} + fn callback_fn_trap(n: i32) -> Result { + Err(format!("foo {}", n + 1)) + } -fn callback_fn_trap_with_vmctx(vmctx: &mut vm::Ctx, n: i32) -> Result { - let memory = vmctx.memory(0); - let shift_: i32 = memory.view()[0].get(); + fn callback_fn_trap_with_vmctx(vmctx: &mut vm::Ctx, n: i32) -> Result { + let memory = vmctx.memory(0); + let shift_: i32 = memory.view()[0].get(); - Err(format!("baz {}", shift_ + n + 1)) -} + Err(format!("baz {}", shift_ + n + 1)) + } -macro_rules! test { + macro_rules! test { ($test_name:ident, $function:ident( $( $inputs:ty ),* ) -> $output:ty, ( $( $arguments:expr ),* ) == $expected_value:expr) => { #[cfg(all(unix, target_arch = "x86_64"))] #[test] @@ -402,73 +405,74 @@ macro_rules! test { }; } -test!(test_fn, function_fn(i32) -> i32, (1) == Ok(2)); -test!(test_closure, function_closure(i32) -> i32, (1) == Ok(2)); -test!(test_fn_dynamic, function_fn_dynamic(i32) -> i32, (1) == Ok(2)); -test!(test_fn_dynamic_panic, function_fn_dynamic_panic(i32) -> i32, (1) == Err(RuntimeError(Box::new("test")))); -test!( + test!(test_fn, function_fn(i32) -> i32, (1) == Ok(2)); + test!(test_closure, function_closure(i32) -> i32, (1) == Ok(2)); + test!(test_fn_dynamic, function_fn_dynamic(i32) -> i32, (1) == Ok(2)); + test!(test_fn_dynamic_panic, function_fn_dynamic_panic(i32) -> i32, (1) == Err(RuntimeError(Box::new("test")))); + test!( test_closure_dynamic_0, function_closure_dynamic_0(()) -> (), () == Ok(()) ); -test!( + test!( test_closure_dynamic_1, function_closure_dynamic_1(i32) -> i32, (1) == Ok(1 + shift + SHIFT) ); -test!( + test!( test_closure_dynamic_2, function_closure_dynamic_2(i32, i64) -> i64, (1, 2) == Ok(1 + 2 + shift as i64 + SHIFT as i64) ); -test!( + test!( test_closure_dynamic_3, function_closure_dynamic_3(i32, i64, f32) -> f32, (1, 2, 3.) == Ok(1. + 2. + 3. + shift as f32 + SHIFT as f32) ); -test!( + test!( test_closure_dynamic_4, function_closure_dynamic_4(i32, i64, f32, f64) -> f64, (1, 2, 3., 4.) == Ok(1. + 2. + 3. + 4. + shift as f64 + SHIFT as f64) ); -test!( + test!( test_closure_with_env, function_closure_with_env(i32) -> i32, (1) == Ok(2 + shift + SHIFT) ); -test!(test_fn_with_vmctx, function_fn_with_vmctx(i32) -> i32, (1) == Ok(2 + SHIFT)); -test!( + test!(test_fn_with_vmctx, function_fn_with_vmctx(i32) -> i32, (1) == Ok(2 + SHIFT)); + test!( test_closure_with_vmctx, function_closure_with_vmctx(i32) -> i32, (1) == Ok(2 + SHIFT) ); -test!( + test!( test_closure_with_vmctx_and_env, function_closure_with_vmctx_and_env(i32) -> i32, (1) == Ok(2 + shift + SHIFT) ); -test!( + test!( test_fn_trap, function_fn_trap(i32) -> i32, (1) == Err(RuntimeError(Box::new(format!("foo {}", 2)))) ); -test!( + test!( test_closure_trap, function_closure_trap(i32) -> i32, (1) == Err(RuntimeError(Box::new(format!("bar {}", 2)))) ); -test!( + test!( test_fn_trap_with_vmctx, function_fn_trap_with_vmctx(i32) -> i32, (1) == Err(RuntimeError(Box::new(format!("baz {}", 2 + SHIFT)))) ); -test!( + test!( test_closure_trap_with_vmctx, function_closure_trap_with_vmctx(i32) -> i32, (1) == Err(RuntimeError(Box::new(format!("qux {}", 2 + SHIFT)))) ); -test!( + test!( test_closure_trap_with_vmctx_and_env, function_closure_trap_with_vmctx_and_env(i32) -> i32, (1) == Err(RuntimeError(Box::new(format!("! {}", 2 + shift + SHIFT)))) ); +} From 5572ebd9903cc500acbb03c49c186f9ae3456cde Mon Sep 17 00:00:00 2001 From: Syrus Date: Mon, 6 Apr 2020 16:06:49 -0700 Subject: [PATCH 07/12] Refactored bin commands into separate files --- src/bin/wasmer.rs | 1132 +----------------------------------- src/commands.rs | 6 + src/commands/cache.rs | 31 + src/commands/run.rs | 982 +++++++++++++++++++++++++++++++ src/commands/selfupdate.rs | 31 + src/commands/validate.rs | 56 ++ src/common.rs | 62 ++ src/lib.rs | 9 +- src/update.rs | 21 - src/utils.rs | 14 + src/webassembly.rs | 72 --- 11 files changed, 1193 insertions(+), 1223 deletions(-) create mode 100644 src/commands.rs create mode 100644 src/commands/cache.rs create mode 100644 src/commands/run.rs create mode 100644 src/commands/selfupdate.rs create mode 100644 src/commands/validate.rs create mode 100644 src/common.rs delete mode 100644 src/update.rs delete mode 100644 src/webassembly.rs diff --git a/src/bin/wasmer.rs b/src/bin/wasmer.rs index 7c4b9a3466f..2b080f63c10 100644 --- a/src/bin/wasmer.rs +++ b/src/bin/wasmer.rs @@ -7,62 +7,13 @@ unused_unsafe, unreachable_patterns )] -extern crate structopt; -#[macro_use] -extern crate log; - -use std::collections::HashMap; use std::env; -use std::fs::{read_to_string, File}; -use std::io; -use std::io::Read; -use std::path::PathBuf; -use std::process::exit; -use std::str::FromStr; +use wasmer_bin::commands::{Cache, Run, SelfUpdate, Validate}; use structopt::{clap, StructOpt}; -use wasmer_bin::*; -#[cfg(feature = "backend-cranelift")] -use wasmer_clif_backend::CraneliftCompiler; -#[cfg(feature = "backend-llvm")] -use wasmer_llvm_backend::{ - InkwellMemoryBuffer, InkwellModule, LLVMBackendConfig, LLVMCallbacks, LLVMCompiler, -}; -use wasmer_runtime::{ - cache::{Cache as BaseCache, FileSystemCache, WasmHash}, - Backend, DynFunc, Value, VERSION, -}; -#[cfg(feature = "managed")] -use wasmer_runtime_core::tiering::{run_tiering, InteractiveShellContext, ShellExitOperation}; -use wasmer_runtime_core::{ - self, - backend::{Compiler, CompilerConfig, Features, MemoryBoundCheckMode}, - loader::{Instance as LoadedInstance, LocalLoader}, - Module, -}; -#[cfg(unix)] -use wasmer_runtime_core::{ - fault::{pop_code_version, push_code_version}, - state::CodeVersion, -}; -#[cfg(feature = "wasi")] -use wasmer_wasi; - -#[cfg(feature = "backend-llvm")] -use std::{cell::RefCell, io::Write, rc::Rc}; -#[cfg(feature = "backend-llvm")] -use wasmer_runtime_core::backend::BackendCompilerConfig; - -#[cfg(not(any( - feature = "backend-cranelift", - feature = "backend-llvm", - feature = "backend-singlepass" -)))] -compile_error!("Please enable one or more of the compiler backends"); - #[derive(Debug, StructOpt)] -#[structopt(name = "wasmer", about = "Wasm execution runtime.", author)] +#[structopt(name = "wasmer", about = "WebAssembly standalone runtime.", author)] /// The options for the wasmer Command Line Interface enum CLIOptions { /// Run a WebAssembly file. Formats accepted: wasm, wat @@ -82,1051 +33,13 @@ enum CLIOptions { SelfUpdate, } -#[derive(Debug, StructOpt, Clone)] -struct PrestandardFeatures { - /// Enable support for the SIMD proposal. - #[structopt(long = "enable-simd")] - simd: bool, - - /// Enable support for the threads proposal. - #[structopt(long = "enable-threads")] - threads: bool, - - /// Enable support for all pre-standard proposals. - #[structopt(long = "enable-all")] - all: bool, -} - -impl PrestandardFeatures { - /// Generate [`wabt::Features`] struct from CLI options - #[cfg(feature = "wabt")] - pub fn into_wabt_features(&self) -> wabt::Features { - let mut features = wabt::Features::new(); - if self.simd || self.all { - features.enable_simd(); - } - if self.threads || self.all { - features.enable_threads(); - } - features.enable_sign_extension(); - features.enable_sat_float_to_int(); - features - } - - /// Generate [`Features`] struct from CLI options - pub fn into_backend_features(&self) -> Features { - Features { - simd: self.simd || self.all, - threads: self.threads || self.all, - } - } -} - -#[cfg(feature = "backend-llvm")] -#[derive(Debug, StructOpt, Clone)] -/// LLVM backend flags. -pub struct LLVMCLIOptions { - /// Emit LLVM IR before optimization pipeline. - #[structopt(long = "llvm-pre-opt-ir", parse(from_os_str))] - pre_opt_ir: Option, - - /// Emit LLVM IR after optimization pipeline. - #[structopt(long = "llvm-post-opt-ir", parse(from_os_str))] - post_opt_ir: Option, - - /// Emit LLVM generated native code object file. - #[structopt(long = "llvm-object-file", parse(from_os_str))] - obj_file: Option, -} - -#[derive(Debug, StructOpt, Clone)] -struct Run { - /// Disable the cache - #[structopt(long = "disable-cache")] - disable_cache: bool, - - /// Input file - #[structopt(parse(from_os_str))] - path: PathBuf, - - /// Name of the backend to use (x86_64) - #[cfg(target_arch = "x86_64")] - #[structopt( - long = "backend", - default_value = "auto", - case_insensitive = true, - possible_values = Backend::variants(), - )] - backend: Backend, - - /// Name of the backend to use (aarch64) - #[cfg(target_arch = "aarch64")] - #[structopt( - long = "backend", - default_value = "singlepass", - case_insensitive = true, - possible_values = Backend::variants(), - )] - backend: Backend, - - /// Invoke a specified function - #[structopt(long = "invoke", short = "i")] - invoke: Option, - - /// Emscripten symbol map - #[structopt(long = "em-symbol-map", parse(from_os_str), group = "emscripten")] - em_symbol_map: Option, - - /// Begin execution at the specified symbol - #[structopt(long = "em-entrypoint", group = "emscripten")] - em_entrypoint: Option, - - /// WASI pre-opened directory - #[structopt(long = "dir", multiple = true, group = "wasi")] - pre_opened_directories: Vec, - - /// Map a host directory to a different location for the wasm module - #[structopt(long = "mapdir", multiple = true)] - mapped_dirs: Vec, - - /// Pass custom environment variables - #[structopt(long = "env", multiple = true)] - env_vars: Vec, - - /// Custom code loader - #[structopt( - long = "loader", - case_insensitive = true, - possible_values = LoaderName::variants(), - )] - loader: Option, - - /// Path to previously saved instance image to resume. - #[cfg(feature = "managed")] - #[structopt(long = "resume")] - resume: Option, - - /// Optimized backends for higher tiers. - #[cfg(feature = "managed")] - #[structopt( - long = "optimized-backends", - multiple = true, - case_insensitive = true, - possible_values = Backend::variants(), - )] - optimized_backends: Vec, - - /// Whether or not state tracking should be disabled during compilation. - /// State tracking is necessary for tier switching and backtracing. - #[structopt(long = "track-state")] - track_state: bool, - - // Enable the CallTrace middleware. - #[structopt(long = "call-trace")] - call_trace: bool, - - // Enable the BlockTrace middleware. - #[structopt(long = "block-trace")] - block_trace: bool, - - /// The command name is a string that will override the first argument passed - /// to the wasm program. This is used in wapm to provide nicer output in - /// help commands and error messages of the running wasm program - #[structopt(long = "command-name", hidden = true)] - command_name: Option, - - /// A prehashed string, used to speed up start times by avoiding hashing the - /// wasm module. If the specified hash is not found, Wasmer will hash the module - /// as if no `cache-key` argument was passed. - #[structopt(long = "cache-key", hidden = true)] - cache_key: Option, - - #[cfg(feature = "backend-llvm")] - #[structopt(flatten)] - backend_llvm_options: LLVMCLIOptions, - - #[structopt(flatten)] - features: PrestandardFeatures, - - /// Enable non-standard experimental IO devices - #[cfg(feature = "experimental-io-devices")] - #[structopt(long = "enable-experimental-io-devices")] - enable_experimental_io_devices: bool, - - /// Enable debug output - #[cfg(feature = "debug")] - #[structopt(long = "debug", short = "d")] - debug: bool, - - /// Generate debug information for use in a debugger - #[structopt(long = "generate-debug-info", short = "g")] - generate_debug_info: bool, - - /// Application arguments - #[structopt(name = "--", multiple = true)] - args: Vec, -} - -impl Run { - /// Used with the `invoke` argument - fn parse_args(&self, module: &Module, fn_name: &str) -> Result, String> { - utils::parse_args(module, fn_name, &self.args) - .map_err(|e| format!("Invoke failed: {:?}", e)) - } -} - -#[allow(dead_code)] -#[derive(Debug, Copy, Clone)] -enum LoaderName { - Local, - #[cfg(feature = "loader-kernel")] - Kernel, -} - -impl LoaderName { - pub fn variants() -> &'static [&'static str] { - &[ - "local", - #[cfg(feature = "loader-kernel")] - "kernel", - ] - } -} - -impl FromStr for LoaderName { - type Err = String; - fn from_str(s: &str) -> Result { - match s.to_lowercase().as_str() { - "local" => Ok(LoaderName::Local), - #[cfg(feature = "loader-kernel")] - "kernel" => Ok(LoaderName::Kernel), - _ => Err(format!("The loader {} doesn't exist", s)), - } - } -} - -#[derive(Debug, StructOpt)] -enum Cache { - /// Clear the cache - #[structopt(name = "clean")] - Clean, - - /// Display the location of the cache - #[structopt(name = "dir")] - Dir, -} - -#[derive(Debug, StructOpt)] -struct Validate { - /// Input file - #[structopt(parse(from_os_str))] - path: PathBuf, - - #[structopt(flatten)] - features: PrestandardFeatures, -} - -/// Read the contents of a file -fn read_file_contents(path: &PathBuf) -> Result, io::Error> { - let mut buffer: Vec = Vec::new(); - let mut file = File::open(path)?; - file.read_to_end(&mut buffer)?; - // We force to close the file - drop(file); - Ok(buffer) -} - -fn get_cache_dir() -> PathBuf { - match env::var("WASMER_CACHE_DIR") { - Ok(dir) => { - let mut path = PathBuf::from(dir); - path.push(VERSION); - path - } - Err(_) => { - // We use a temporal directory for saving cache files - let mut temp_dir = env::temp_dir(); - temp_dir.push("wasmer"); - temp_dir.push(VERSION); - temp_dir - } - } -} - -fn get_mapped_dirs(input: &[String]) -> Result, String> { - let mut md = vec![]; - for entry in input.iter() { - if let [alias, real_dir] = entry.split(':').collect::>()[..] { - let pb = PathBuf::from(&real_dir); - if let Ok(pb_metadata) = pb.metadata() { - if !pb_metadata.is_dir() { - return Err(format!( - "\"{}\" exists, but it is not a directory", - &real_dir - )); - } - } else { - return Err(format!("Directory \"{}\" does not exist", &real_dir)); - } - md.push((alias.to_string(), pb)); - continue; - } - return Err(format!( - "Directory mappings must consist of two paths separate by a colon. Found {}", - &entry - )); - } - Ok(md) -} - -#[cfg(feature = "wasi")] -fn get_env_var_args(input: &[String]) -> Result, String> { - let mut ev = vec![]; - for entry in input.iter() { - if let [env_var, value] = entry.split('=').collect::>()[..] { - ev.push((env_var, value)); - } else { - return Err(format!( - "Env vars must be of the form =. Found {}", - &entry - )); - } - } - Ok(ev) -} - -/// Helper function for `execute_wasm` (the `Run` command) -#[cfg(feature = "wasi")] -fn execute_wasi( - wasi_version: wasmer_wasi::WasiVersion, - options: &Run, - env_vars: Vec<(&str, &str)>, - module: wasmer_runtime_core::Module, - mapped_dirs: Vec<(String, PathBuf)>, - _wasm_binary: &[u8], -) -> Result<(), String> { - let name = if let Some(cn) = &options.command_name { - cn.clone() - } else { - options.path.to_str().unwrap().to_owned() - }; - - let args = options.args.iter().cloned().map(|arg| arg.into_bytes()); - let preopened_files = options.pre_opened_directories.clone(); - let mut wasi_state_builder = wasmer_wasi::state::WasiState::new(&name); - wasi_state_builder - .args(args) - .envs(env_vars) - .preopen_dirs(preopened_files) - .map_err(|e| format!("Failed to preopen directories: {:?}", e))? - .map_dirs(mapped_dirs) - .map_err(|e| format!("Failed to preopen mapped directories: {:?}", e))?; - - #[cfg(feature = "experimental-io-devices")] - { - if options.enable_experimental_io_devices { - wasi_state_builder.setup_fs(Box::new(wasmer_wasi_experimental_io_devices::initialize)); - } - } - let wasi_state = wasi_state_builder.build().map_err(|e| format!("{:?}", e))?; - - let import_object = wasmer_wasi::generate_import_object_from_state(wasi_state, wasi_version); - - #[allow(unused_mut)] // mut used in feature - let mut instance = module - .instantiate(&import_object) - .map_err(|e| format!("Can't instantiate WASI module: {:?}", e))?; - - let start: wasmer_runtime::Func<(), ()> = instance - .exports - .get("_start") - .map_err(|e| format!("{:?}", e))?; - - #[cfg(feature = "managed")] - { - let start_raw: extern "C" fn(&mut wasmer_runtime_core::vm::Ctx) = - unsafe { ::std::mem::transmute(start.get_vm_func()) }; - - unsafe { - run_tiering( - module.info(), - &_wasm_binary, - if let Some(ref path) = options.resume { - let mut f = File::open(path).unwrap(); - let mut out: Vec = vec![]; - f.read_to_end(&mut out).unwrap(); - Some( - wasmer_runtime_core::state::InstanceImage::from_bytes(&out) - .map_err(|_| format!("failed to decode image"))?, - ) - } else { - None - }, - &import_object, - start_raw, - &mut instance, - options.backend.to_string(), - options - .optimized_backends - .iter() - .map( - |&backend| -> (Backend, Box Box + Send>) { - let options = options.clone(); - ( - backend.to_string(), - Box::new(move || { - get_compiler_by_backend(backend, &options).unwrap() - }), - ) - }, - ) - .collect(), - interactive_shell, - )? - }; - } - - #[cfg(not(feature = "managed"))] - { - let result; - - #[cfg(unix)] - let cv_pushed = if let Some(msm) = instance.module.runnable_module.get_module_state_map() { - push_code_version(CodeVersion { - baseline: true, - msm: msm, - base: instance.module.runnable_module.get_code().unwrap().as_ptr() as usize, - backend: options.backend.to_string(), - runnable_module: instance.module.runnable_module.clone(), - }); - true - } else { - false - }; - - if let Some(invoke_fn) = options.invoke.as_ref() { - eprintln!("WARNING: Invoking aribtrary functions with WASI is not officially supported in the WASI standard yet. Use this feature at your own risk!"); - let args = options.parse_args(&module, invoke_fn)?; - let invoke_result = instance - .exports - .get::(invoke_fn) - .map_err(|e| format!("Invoke failed: {:?}", e))? - .call(&args) - .map_err(|e| format!("Calling invoke fn failed: {:?}", e))?; - println!("{}({:?}) returned {:?}", invoke_fn, args, invoke_result); - return Ok(()); - } else { - result = start.call(); - } - - #[cfg(unix)] - { - if cv_pushed { - pop_code_version().unwrap(); - } - } - - if let Err(ref err) = result { - if let Some(error_code) = err.0.downcast_ref::() { - std::process::exit(error_code.code as i32) - } - return Err(format!("error: {:?}", err)); - } - } - Ok(()) -} - -#[cfg(feature = "backend-llvm")] -impl LLVMCallbacks for LLVMCLIOptions { - fn preopt_ir_callback(&mut self, module: &InkwellModule) { - if let Some(filename) = &self.pre_opt_ir { - module.print_to_file(filename).unwrap(); - } - } - - fn postopt_ir_callback(&mut self, module: &InkwellModule) { - if let Some(filename) = &self.post_opt_ir { - module.print_to_file(filename).unwrap(); - } - } - - fn obj_memory_buffer_callback(&mut self, memory_buffer: &InkwellMemoryBuffer) { - if let Some(filename) = &self.obj_file { - let mem_buf_slice = memory_buffer.as_slice(); - let mut file = File::create(filename).unwrap(); - let mut pos = 0; - while pos < mem_buf_slice.len() { - pos += file.write(&mem_buf_slice[pos..]).unwrap(); - } - } - } -} - -/// Execute a wasm/wat file -fn execute_wasm(options: &Run) -> Result<(), String> { - if options.generate_debug_info && options.backend != Backend::Cranelift { - return Err("Generating debug information is currently only available with the `cranelift` backend.".to_owned()); - } - - let disable_cache = options.disable_cache; - - let mapped_dirs = get_mapped_dirs(&options.mapped_dirs[..])?; - #[cfg(feature = "wasi")] - let env_vars = get_env_var_args(&options.env_vars[..])?; - let wasm_path = &options.path; - - #[allow(unused_mut)] - let mut wasm_binary: Vec = read_file_contents(wasm_path).map_err(|err| { - format!( - "Can't read the file {}: {}", - wasm_path.as_os_str().to_string_lossy(), - err - ) - })?; - - let em_symbol_map = if let Some(em_symbol_map_path) = options.em_symbol_map.clone() { - let em_symbol_map_content: String = read_to_string(&em_symbol_map_path) - .map_err(|err| { - format!( - "Can't read symbol map file {}: {}", - em_symbol_map_path.as_os_str().to_string_lossy(), - err, - ) - })? - .to_owned(); - let mut em_symbol_map = HashMap::new(); - for line in em_symbol_map_content.lines() { - let mut split = line.split(':'); - let num_str = if let Some(ns) = split.next() { - ns - } else { - return Err( - "Can't parse symbol map (expected each entry to be of the form: `0:func_name`)" - .to_string(), - ); - }; - let num: u32 = num_str.parse::().map_err(|err| { - format!( - "Failed to parse {} as a number in symbol map: {}", - num_str, err - ) - })?; - let name_str: String = if let Some(name_str) = split.next() { - name_str - } else { - return Err( - "Can't parse symbol map (expected each entry to be of the form: `0:func_name`)" - .to_string(), - ); - } - .to_owned(); - - em_symbol_map.insert(num, name_str); - } - Some(em_symbol_map) - } else { - None - }; - - // Don't error on --enable-all for other backends. - if options.features.simd { - #[cfg(feature = "backend-llvm")] - { - if options.backend != Backend::LLVM { - return Err("SIMD is only supported in the LLVM backend for now".to_string()); - } - } - #[cfg(not(feature = "backend-llvm"))] - return Err("SIMD is not supported in this backend".to_string()); - } - - if !utils::is_wasm_binary(&wasm_binary) { - #[cfg(feature = "wabt")] - { - let features = options.features.into_wabt_features(); - wasm_binary = wabt::wat2wasm_with_features(wasm_binary, features).map_err(|e| { - format!( - "Can't convert from wast to wasm because \"{}\"{}", - e, - match e.kind() { - wabt::ErrorKind::Deserialize(s) - | wabt::ErrorKind::Parse(s) - | wabt::ErrorKind::ResolveNames(s) - | wabt::ErrorKind::Validate(s) => format!(":\n\n{}", s), - wabt::ErrorKind::Nul - | wabt::ErrorKind::WriteText - | wabt::ErrorKind::NonUtf8Result - | wabt::ErrorKind::WriteBinary => "".to_string(), - } - ) - })?; - } - - #[cfg(not(feature = "wabt"))] - { - return Err( - "Input is not a wasm binary and the `wabt` feature is not enabled".to_string(), - ); - } - } - - let compiler: Box = get_compiler_by_backend(options.backend, options) - .ok_or_else(|| { - format!( - "the requested backend, \"{}\", is not enabled", - options.backend.to_string() - ) - })?; - - #[allow(unused_mut)] - let mut backend_specific_config = None; - #[cfg(feature = "backend-llvm")] - { - if options.backend == Backend::LLVM { - backend_specific_config = Some(BackendCompilerConfig(Box::new(LLVMBackendConfig { - callbacks: Some(Rc::new(RefCell::new(options.backend_llvm_options.clone()))), - }))) - } - } - - let track_state = options.track_state; - - #[cfg(feature = "loader-kernel")] - let is_kernel_loader = if let Some(LoaderName::Kernel) = options.loader { - true - } else { - false - }; - - #[cfg(not(feature = "loader-kernel"))] - let is_kernel_loader = false; - - let module = if is_kernel_loader { - webassembly::compile_with_config_with( - &wasm_binary[..], - CompilerConfig { - symbol_map: em_symbol_map.clone(), - memory_bound_check_mode: MemoryBoundCheckMode::Disable, - enforce_stack_check: true, - - // Kernel loader does not support explicit preemption checkpoints. - full_preemption: false, - - track_state, - features: options.features.into_backend_features(), - backend_specific_config, - ..Default::default() - }, - &*compiler, - ) - .map_err(|e| format!("Can't compile module: {:?}", e))? - } else if disable_cache { - webassembly::compile_with_config_with( - &wasm_binary[..], - CompilerConfig { - symbol_map: em_symbol_map.clone(), - track_state, - - // Enable full preemption if state tracking is enabled. - // Preemption only makes sense with state information. - full_preemption: track_state, - - features: options.features.into_backend_features(), - backend_specific_config, - generate_debug_info: options.generate_debug_info, - ..Default::default() - }, - &*compiler, - ) - .map_err(|e| format!("Can't compile module: {:?}", e))? - } else { - // If we have cache enabled - let wasmer_cache_dir = get_cache_dir(); - - // We create a new cache instance. - // It could be possible to use any other kinds of caching, as long as they - // implement the Cache trait (with save and load functions) - let mut cache = unsafe { - FileSystemCache::new(wasmer_cache_dir).map_err(|e| format!("Cache error: {:?}", e))? - }; - let load_cache_key = || -> Result<_, String> { - if let Some(ref prehashed_cache_key) = options.cache_key { - if let Ok(module) = - WasmHash::decode(prehashed_cache_key).and_then(|prehashed_key| { - cache.load_with_backend(prehashed_key, options.backend) - }) - { - debug!("using prehashed key: {}", prehashed_cache_key); - return Ok(module); - } - } - // We generate a hash for the given binary, so we can use it as key - // for the Filesystem cache - let hash = WasmHash::generate(&wasm_binary); - - // cache.load will return the Module if it's able to deserialize it properly, and an error if: - // * The file is not found - // * The file exists, but it's corrupted or can't be converted to a module - match cache.load_with_backend(hash, options.backend) { - Ok(module) => { - // We are able to load the module from cache - Ok(module) - } - Err(_) => { - let module = webassembly::compile_with_config_with( - &wasm_binary[..], - CompilerConfig { - symbol_map: em_symbol_map.clone(), - track_state, - features: options.features.into_backend_features(), - backend_specific_config, - ..Default::default() - }, - &*compiler, - ) - .map_err(|e| format!("Can't compile module: {:?}", e))?; - // We try to save the module into a cache file - cache.store(hash, module.clone()).unwrap_or_default(); - - Ok(module) - } - } - }; - - load_cache_key()? - }; - - if let Some(loader) = options.loader { - let mut import_object = wasmer_runtime_core::import::ImportObject::new(); - import_object.allow_missing_functions = true; // Import initialization might be left to the loader. - let instance = module - .instantiate(&import_object) - .map_err(|e| format!("Can't instantiate loader module: {:?}", e))?; - - let mut args: Vec = Vec::new(); - for arg in options.args.iter() { - let x = arg.as_str().parse().map_err(|_| { - format!( - "Can't parse the provided argument {:?} as a integer", - arg.as_str() - ) - })?; - args.push(Value::I32(x)); - } - - let index = instance.resolve_func("_start").map_err(|_| { - format!("The loader requires a _start function to be present in the module") - })?; - - let mut ins: Box> = match loader { - LoaderName::Local => Box::new( - instance - .load(LocalLoader) - .map_err(|e| format!("Can't use the local loader: {:?}", e))?, - ), - #[cfg(feature = "loader-kernel")] - LoaderName::Kernel => Box::new( - instance - .load(::wasmer_kernel_loader::KernelLoader) - .map_err(|e| format!("Can't use the kernel loader: {:?}", e))?, - ), - }; - println!("{:?}", ins.call(index, &args)); - return Ok(()); - } - - // TODO: refactor this - if wasmer_emscripten::is_emscripten_module(&module) { - let mut emscripten_globals = wasmer_emscripten::EmscriptenGlobals::new(&module)?; - let import_object = wasmer_emscripten::generate_emscripten_env(&mut emscripten_globals); - let mut instance = module - .instantiate(&import_object) - .map_err(|e| format!("Can't instantiate emscripten module: {:?}", e))?; - - wasmer_emscripten::run_emscripten_instance( - &module, - &mut instance, - &mut emscripten_globals, - if let Some(cn) = &options.command_name { - cn - } else { - options.path.to_str().unwrap() - }, - options.args.iter().map(|arg| arg.as_str()).collect(), - options.em_entrypoint.clone(), - mapped_dirs, - ) - .map_err(|e| format!("{:?}", e))?; - } else { - #[cfg(feature = "wasi")] - let wasi_version = wasmer_wasi::get_wasi_version(&module, true); - #[cfg(feature = "wasi")] - let is_wasi = wasi_version.is_some(); - #[cfg(not(feature = "wasi"))] - let is_wasi = false; - - if is_wasi { - #[cfg(feature = "wasi")] - execute_wasi( - wasi_version.unwrap(), - options, - env_vars, - module, - mapped_dirs, - &wasm_binary, - )?; - } else { - let import_object = wasmer_runtime_core::import::ImportObject::new(); - let instance = module - .instantiate(&import_object) - .map_err(|e| format!("Can't instantiate module: {:?}", e))?; - - let invoke_fn = match options.invoke.as_ref() { - Some(fun) => fun, - _ => "main", - }; - let args = options.parse_args(&module, invoke_fn)?; - - #[cfg(unix)] - let cv_pushed = - if let Some(msm) = instance.module.runnable_module.get_module_state_map() { - push_code_version(CodeVersion { - baseline: true, - msm: msm, - base: instance.module.runnable_module.get_code().unwrap().as_ptr() as usize, - backend: options.backend.to_string(), - runnable_module: instance.module.runnable_module.clone(), - }); - true - } else { - false - }; - - let result = instance - .exports - .get::(&invoke_fn) - .map_err(|e| format!("{:?}", e))? - .call(&args) - .map_err(|e| format!("{:?}", e))?; - - #[cfg(unix)] - { - if cv_pushed { - pop_code_version().unwrap(); - } - } - println!("{}({:?}) returned {:?}", invoke_fn, args, result); - } - } - - Ok(()) -} - -#[cfg(feature = "managed")] -fn interactive_shell(mut ctx: InteractiveShellContext) -> ShellExitOperation { - use std::io::Write; - - let mut stdout = ::std::io::stdout(); - let stdin = ::std::io::stdin(); - - loop { - print!("Wasmer> "); - stdout.flush().unwrap(); - let mut line = String::new(); - stdin.read_line(&mut line).unwrap(); - let mut parts = line.split(" ").filter(|x| x.len() > 0).map(|x| x.trim()); - - let cmd = parts.next(); - if cmd.is_none() { - println!("Command required"); - continue; - } - let cmd = cmd.unwrap(); - - match cmd { - "snapshot" => { - let path = parts.next(); - if path.is_none() { - println!("Usage: snapshot [out_path]"); - continue; - } - let path = path.unwrap(); - - if let Some(ref image) = ctx.image { - let buf = image.to_bytes(); - let mut f = match File::create(path) { - Ok(x) => x, - Err(e) => { - println!("Cannot open output file at {}: {:?}", path, e); - continue; - } - }; - if let Err(e) = f.write_all(&buf) { - println!("Cannot write to output file at {}: {:?}", path, e); - continue; - } - println!("Done"); - } else { - println!("Program state not available"); - } - } - "continue" | "c" => { - if let Some(image) = ctx.image.take() { - return ShellExitOperation::ContinueWith(image); - } else { - println!("Program state not available, cannot continue execution"); - } - } - "backtrace" | "bt" => { - if let Some(ref image) = ctx.image { - println!("{}", image.execution_state.output()); - } else { - println!("State not available"); - } - } - "exit" | "quit" => { - exit(0); - } - "" => {} - _ => { - println!("Unknown command: {}", cmd); - } - } - } -} - -#[allow(unused_variables, unreachable_code)] -fn get_backend(backend: Backend, path: &PathBuf) -> Backend { - // Update backend when a backend flag is `auto`. - // Use the Singlepass backend if it's enabled and the file provided is larger - // than 10MiB (10485760 bytes), or it's enabled and the target architecture - // is AArch64. Otherwise, use the Cranelift backend. - match backend { - Backend::Auto => { - #[cfg(feature = "backend-singlepass")] - { - let binary_size = match &path.metadata() { - Ok(wasm_binary) => wasm_binary.len(), - Err(_e) => 0, - }; - if binary_size > 10485760 || cfg!(target_arch = "aarch64") { - return Backend::Singlepass; - } - } - - #[cfg(feature = "backend-cranelift")] - { - return Backend::Cranelift; - } - - #[cfg(feature = "backend-llvm")] - { - return Backend::LLVM; - } - - panic!("Can't find any backend"); - } - backend => backend, - } -} - -fn run(options: &mut Run) { - options.backend = get_backend(options.backend, &options.path); - - #[cfg(any(feature = "debug", feature = "trace"))] - { - if options.debug { - logging::set_up_logging().expect("failed to set up logging"); - } - } - match execute_wasm(options) { - Ok(()) => {} - Err(message) => { - eprintln!("Error: {}", message); - exit(1); - } - } -} - -fn validate_wasm(validate: Validate) -> Result<(), String> { - let wasm_path = validate.path; - let wasm_path_as_str = wasm_path.to_str().unwrap(); - - let wasm_binary: Vec = read_file_contents(&wasm_path).map_err(|err| { - format!( - "Can't read the file {}: {}", - wasm_path.as_os_str().to_string_lossy(), - err - ) - })?; - - if !utils::is_wasm_binary(&wasm_binary) { - return Err(format!( - "Cannot recognize \"{}\" as a WASM binary", - wasm_path_as_str, - )); - } - - wasmer_runtime_core::validate_and_report_errors_with_features( - &wasm_binary, - validate.features.into_backend_features(), - ) - .map_err(|err| format!("Validation failed: {}", err))?; - - Ok(()) -} - -/// Runs logic for the `validate` subcommand -fn validate(validate: Validate) { - match validate_wasm(validate) { - Err(message) => { - eprintln!("Error: {}", message); - exit(-1); - } - _ => (), - } -} - -fn get_compiler_by_backend(backend: Backend, _opts: &Run) -> Option> { - Some(match backend { - #[cfg(feature = "backend-singlepass")] - Backend::Singlepass => { - use wasmer_runtime_core::codegen::MiddlewareChain; - use wasmer_runtime_core::codegen::StreamingCompiler; - use wasmer_singlepass_backend::ModuleCodeGenerator as SinglePassMCG; - - let opts = _opts.clone(); - let middlewares_gen = move || { - let mut middlewares = MiddlewareChain::new(); - if opts.call_trace { - use wasmer_middleware_common::call_trace::CallTrace; - middlewares.push(CallTrace::new()); - } - if opts.block_trace { - use wasmer_middleware_common::block_trace::BlockTrace; - middlewares.push(BlockTrace::new()); - } - middlewares - }; - - let c: StreamingCompiler = - StreamingCompiler::new(middlewares_gen); - Box::new(c) - } - #[cfg(feature = "backend-cranelift")] - Backend::Cranelift => Box::new(CraneliftCompiler::new()), - #[cfg(feature = "backend-llvm")] - Backend::LLVM => Box::new(LLVMCompiler::new()), - _ => return None, - }) -} - fn main() { // We try to run wasmer with the normal arguments. // Eg. `wasmer ` // In case that fails, we fallback trying the Run subcommand directly. // Eg. `wasmer myfile.wasm --dir=.` - let options = CLIOptions::from_iter_safe(env::args()).unwrap_or_else(|e| { + let args = env::args(); + let options = CLIOptions::from_iter_safe(args).unwrap_or_else(|e| { match e.kind { // This fixes a issue that: // 1. Shows the version twice when doing `wasmer -V` @@ -1135,38 +48,11 @@ fn main() { _ => CLIOptions::Run(Run::from_args()), } }); + match options { - CLIOptions::Run(mut options) => run(&mut options), - #[cfg(not(target_os = "windows"))] - CLIOptions::SelfUpdate => update::self_update(), - #[cfg(target_os = "windows")] - CLIOptions::SelfUpdate => { - println!("Self update is not supported on Windows. Use install instructions on the Wasmer homepage: https://wasmer.io"); - } - CLIOptions::Cache(cache) => match cache { - Cache::Clean => { - use std::fs; - let cache_dir = get_cache_dir(); - if cache_dir.exists() { - fs::remove_dir_all(cache_dir.clone()).expect("Can't remove cache dir"); - } - fs::create_dir_all(cache_dir.clone()).expect("Can't create cache dir"); - } - Cache::Dir => { - println!("{}", get_cache_dir().to_string_lossy()); - } - }, - CLIOptions::Validate(validate_options) => { - validate(validate_options); - } + CLIOptions::Run(mut options) => options.execute(), + CLIOptions::SelfUpdate => SelfUpdate::execute(), + CLIOptions::Cache(cache) => cache.execute(), + CLIOptions::Validate(validate) => validate.execute(), } } - -#[test] -fn filesystem_cache_should_work() -> Result<(), String> { - let wasmer_cache_dir = get_cache_dir(); - - unsafe { FileSystemCache::new(wasmer_cache_dir).map_err(|e| format!("Cache error: {:?}", e))? }; - - Ok(()) -} diff --git a/src/commands.rs b/src/commands.rs new file mode 100644 index 00000000000..e1da8b55c3e --- /dev/null +++ b/src/commands.rs @@ -0,0 +1,6 @@ +mod cache; +mod run; +mod selfupdate; +mod validate; + +pub use {cache::*, run::*, selfupdate::*, validate::*}; diff --git a/src/commands/cache.rs b/src/commands/cache.rs new file mode 100644 index 00000000000..84afa3cbdc1 --- /dev/null +++ b/src/commands/cache.rs @@ -0,0 +1,31 @@ +use crate::common::get_cache_dir; +use structopt::StructOpt; + +#[derive(Debug, StructOpt)] +pub enum Cache { + /// Clear the cache + #[structopt(name = "clean")] + Clean, + + /// Display the location of the cache + #[structopt(name = "dir")] + Dir, +} + +impl Cache { + pub fn execute(&self) { + match &self { + Cache::Clean => { + use std::fs; + let cache_dir = get_cache_dir(); + if cache_dir.exists() { + fs::remove_dir_all(cache_dir.clone()).expect("Can't remove cache dir"); + } + fs::create_dir_all(cache_dir.clone()).expect("Can't create cache dir"); + } + Cache::Dir => { + println!("{}", get_cache_dir().to_string_lossy()); + } + } + } +} diff --git a/src/commands/run.rs b/src/commands/run.rs new file mode 100644 index 00000000000..ddab3e9d328 --- /dev/null +++ b/src/commands/run.rs @@ -0,0 +1,982 @@ +use crate::common::{get_cache_dir, PrestandardFeatures}; +use crate::utils::read_file_contents; +use std::collections::HashMap; +use std::fs::read_to_string; +#[cfg(feature = "backend-llvm")] +use std::fs::File; +use std::path::PathBuf; +use std::process::exit; +use std::str::FromStr; +use wasmer_runtime::compile_with_config_with; + +use structopt::StructOpt; + +#[cfg(feature = "backend-cranelift")] +use wasmer_clif_backend::CraneliftCompiler; +#[cfg(feature = "backend-llvm")] +use wasmer_llvm_backend::{ + InkwellMemoryBuffer, InkwellModule, LLVMBackendConfig, LLVMCallbacks, LLVMCompiler, +}; +use wasmer_runtime::{ + cache::{Cache as BaseCache, FileSystemCache, WasmHash}, + Backend, DynFunc, Value, +}; +#[cfg(feature = "managed")] +use wasmer_runtime_core::tiering::{run_tiering, InteractiveShellContext, ShellExitOperation}; +use wasmer_runtime_core::{ + self, + backend::{Compiler, CompilerConfig, MemoryBoundCheckMode}, + loader::{Instance as LoadedInstance, LocalLoader}, + Module, +}; +#[cfg(unix)] +use wasmer_runtime_core::{ + fault::{pop_code_version, push_code_version}, + state::CodeVersion, +}; +#[cfg(feature = "wasi")] +use wasmer_wasi; + +#[cfg(feature = "backend-llvm")] +use std::{cell::RefCell, rc::Rc}; +#[cfg(feature = "backend-llvm")] +use wasmer_runtime_core::backend::BackendCompilerConfig; + +#[cfg(not(any( + feature = "backend-cranelift", + feature = "backend-llvm", + feature = "backend-singlepass" +)))] +compile_error!("Please enable one or more of the compiler backends"); + +#[cfg(feature = "backend-llvm")] +#[derive(Debug, StructOpt, Clone)] +/// LLVM backend flags. +pub struct LLVMCLIOptions { + /// Emit LLVM IR before optimization pipeline. + #[structopt(long = "llvm-pre-opt-ir", parse(from_os_str))] + pre_opt_ir: Option, + + /// Emit LLVM IR after optimization pipeline. + #[structopt(long = "llvm-post-opt-ir", parse(from_os_str))] + post_opt_ir: Option, + + /// Emit LLVM generated native code object file. + #[structopt(long = "llvm-object-file", parse(from_os_str))] + obj_file: Option, +} + +#[derive(Debug, StructOpt, Clone)] +pub struct Run { + /// Disable the cache + #[structopt(long = "disable-cache")] + disable_cache: bool, + + /// Input file + #[structopt(parse(from_os_str))] + path: PathBuf, + + /// Name of the backend to use (x86_64) + #[cfg(target_arch = "x86_64")] + #[structopt( + long = "backend", + default_value = "auto", + case_insensitive = true, + possible_values = Backend::variants(), + )] + backend: Backend, + + /// Name of the backend to use (aarch64) + #[cfg(target_arch = "aarch64")] + #[structopt( + long = "backend", + default_value = "singlepass", + case_insensitive = true, + possible_values = Backend::variants(), + )] + backend: Backend, + + /// Invoke a specified function + #[structopt(long = "invoke", short = "i")] + invoke: Option, + + /// Emscripten symbol map + #[structopt(long = "em-symbol-map", parse(from_os_str), group = "emscripten")] + em_symbol_map: Option, + + /// Begin execution at the specified symbol + #[structopt(long = "em-entrypoint", group = "emscripten")] + em_entrypoint: Option, + + /// WASI pre-opened directory + #[structopt(long = "dir", multiple = true, group = "wasi")] + pre_opened_directories: Vec, + + /// Map a host directory to a different location for the wasm module + #[structopt(long = "mapdir", multiple = true)] + mapped_dirs: Vec, + + /// Pass custom environment variables + #[structopt(long = "env", multiple = true)] + env_vars: Vec, + + /// Custom code loader + #[structopt( + long = "loader", + case_insensitive = true, + possible_values = LoaderName::variants(), + )] + loader: Option, + + /// Path to previously saved instance image to resume. + #[cfg(feature = "managed")] + #[structopt(long = "resume")] + resume: Option, + + /// Optimized backends for higher tiers. + #[cfg(feature = "managed")] + #[structopt( + long = "optimized-backends", + multiple = true, + case_insensitive = true, + possible_values = Backend::variants(), + )] + optimized_backends: Vec, + + /// Whether or not state tracking should be disabled during compilation. + /// State tracking is necessary for tier switching and backtracing. + #[structopt(long = "track-state")] + track_state: bool, + + // Enable the CallTrace middleware. + #[structopt(long = "call-trace")] + call_trace: bool, + + // Enable the BlockTrace middleware. + #[structopt(long = "block-trace")] + block_trace: bool, + + /// The command name is a string that will override the first argument passed + /// to the wasm program. This is used in wapm to provide nicer output in + /// help commands and error messages of the running wasm program + #[structopt(long = "command-name", hidden = true)] + command_name: Option, + + /// A prehashed string, used to speed up start times by avoiding hashing the + /// wasm module. If the specified hash is not found, Wasmer will hash the module + /// as if no `cache-key` argument was passed. + #[structopt(long = "cache-key", hidden = true)] + cache_key: Option, + + #[cfg(feature = "backend-llvm")] + #[structopt(flatten)] + backend_llvm_options: LLVMCLIOptions, + + #[structopt(flatten)] + features: PrestandardFeatures, + + /// Enable non-standard experimental IO devices + #[cfg(feature = "experimental-io-devices")] + #[structopt(long = "enable-experimental-io-devices")] + enable_experimental_io_devices: bool, + + /// Enable debug output + #[cfg(feature = "debug")] + #[structopt(long = "debug", short = "d")] + debug: bool, + + /// Generate debug information for use in a debugger + #[structopt(long = "generate-debug-info", short = "g")] + generate_debug_info: bool, + + /// Application arguments + #[structopt(name = "--", multiple = true)] + args: Vec, +} + +impl Run { + pub fn execute(&mut self) { + self.backend = get_backend(self.backend, &self.path); + + #[cfg(any(feature = "debug", feature = "trace"))] + { + if self.debug { + logging::set_up_logging().expect("failed to set up logging"); + } + } + match execute_wasm(self) { + Ok(()) => {} + Err(message) => { + eprintln!("Error: {}", message); + exit(1); + } + } + } + + /// Used with the `invoke` argument + pub fn parse_args(&self, module: &Module, fn_name: &str) -> Result, String> { + crate::utils::parse_args(module, fn_name, &self.args) + .map_err(|e| format!("Invoke failed: {:?}", e)) + } +} + +#[allow(dead_code)] +#[derive(Debug, Copy, Clone)] +enum LoaderName { + Local, + #[cfg(feature = "loader-kernel")] + Kernel, +} + +impl LoaderName { + pub fn variants() -> &'static [&'static str] { + &[ + "local", + #[cfg(feature = "loader-kernel")] + "kernel", + ] + } +} + +impl FromStr for LoaderName { + type Err = String; + fn from_str(s: &str) -> Result { + match s.to_lowercase().as_str() { + "local" => Ok(LoaderName::Local), + #[cfg(feature = "loader-kernel")] + "kernel" => Ok(LoaderName::Kernel), + _ => Err(format!("The loader {} doesn't exist", s)), + } + } +} + +#[derive(Debug, StructOpt)] +enum Cache { + /// Clear the cache + #[structopt(name = "clean")] + Clean, + + /// Display the location of the cache + #[structopt(name = "dir")] + Dir, +} + +fn get_mapped_dirs(input: &[String]) -> Result, String> { + let mut md = vec![]; + for entry in input.iter() { + if let [alias, real_dir] = entry.split(':').collect::>()[..] { + let pb = PathBuf::from(&real_dir); + if let Ok(pb_metadata) = pb.metadata() { + if !pb_metadata.is_dir() { + return Err(format!( + "\"{}\" exists, but it is not a directory", + &real_dir + )); + } + } else { + return Err(format!("Directory \"{}\" does not exist", &real_dir)); + } + md.push((alias.to_string(), pb)); + continue; + } + return Err(format!( + "Directory mappings must consist of two paths separate by a colon. Found {}", + &entry + )); + } + Ok(md) +} + +#[cfg(feature = "wasi")] +fn get_env_var_args(input: &[String]) -> Result, String> { + let mut ev = vec![]; + for entry in input.iter() { + if let [env_var, value] = entry.split('=').collect::>()[..] { + ev.push((env_var, value)); + } else { + return Err(format!( + "Env vars must be of the form =. Found {}", + &entry + )); + } + } + Ok(ev) +} + +/// Helper function for `execute_wasm` (the `Run` command) +#[cfg(feature = "wasi")] +fn execute_wasi( + wasi_version: wasmer_wasi::WasiVersion, + options: &Run, + env_vars: Vec<(&str, &str)>, + module: wasmer_runtime_core::Module, + mapped_dirs: Vec<(String, PathBuf)>, + _wasm_binary: &[u8], +) -> Result<(), String> { + let name = if let Some(cn) = &options.command_name { + cn.clone() + } else { + options.path.to_str().unwrap().to_owned() + }; + + let args = options.args.iter().cloned().map(|arg| arg.into_bytes()); + let preopened_files = options.pre_opened_directories.clone(); + let mut wasi_state_builder = wasmer_wasi::state::WasiState::new(&name); + wasi_state_builder + .args(args) + .envs(env_vars) + .preopen_dirs(preopened_files) + .map_err(|e| format!("Failed to preopen directories: {:?}", e))? + .map_dirs(mapped_dirs) + .map_err(|e| format!("Failed to preopen mapped directories: {:?}", e))?; + + #[cfg(feature = "experimental-io-devices")] + { + if options.enable_experimental_io_devices { + wasi_state_builder.setup_fs(Box::new(wasmer_wasi_experimental_io_devices::initialize)); + } + } + let wasi_state = wasi_state_builder.build().map_err(|e| format!("{:?}", e))?; + + let import_object = wasmer_wasi::generate_import_object_from_state(wasi_state, wasi_version); + + #[allow(unused_mut)] // mut used in feature + let mut instance = module + .instantiate(&import_object) + .map_err(|e| format!("Can't instantiate WASI module: {:?}", e))?; + + let start: wasmer_runtime::Func<(), ()> = instance + .exports + .get("_start") + .map_err(|e| format!("{:?}", e))?; + + #[cfg(feature = "managed")] + { + let start_raw: extern "C" fn(&mut wasmer_runtime_core::vm::Ctx) = + unsafe { ::std::mem::transmute(start.get_vm_func()) }; + + unsafe { + run_tiering( + module.info(), + &_wasm_binary, + if let Some(ref path) = options.resume { + let mut f = File::open(path).unwrap(); + let mut out: Vec = vec![]; + f.read_to_end(&mut out).unwrap(); + Some( + wasmer_runtime_core::state::InstanceImage::from_bytes(&out) + .map_err(|_| format!("failed to decode image"))?, + ) + } else { + None + }, + &import_object, + start_raw, + &mut instance, + options.backend.to_string(), + options + .optimized_backends + .iter() + .map( + |&backend| -> (Backend, Box Box + Send>) { + let options = options.clone(); + ( + backend.to_string(), + Box::new(move || { + get_compiler_by_backend(backend, &options).unwrap() + }), + ) + }, + ) + .collect(), + interactive_shell, + )? + }; + } + + #[cfg(not(feature = "managed"))] + { + let result; + + #[cfg(unix)] + let cv_pushed = if let Some(msm) = instance.module.runnable_module.get_module_state_map() { + push_code_version(CodeVersion { + baseline: true, + msm: msm, + base: instance.module.runnable_module.get_code().unwrap().as_ptr() as usize, + backend: options.backend.to_string(), + runnable_module: instance.module.runnable_module.clone(), + }); + true + } else { + false + }; + + if let Some(invoke_fn) = options.invoke.as_ref() { + eprintln!("WARNING: Invoking aribtrary functions with WASI is not officially supported in the WASI standard yet. Use this feature at your own risk!"); + let args = options.parse_args(&module, invoke_fn)?; + let invoke_result = instance + .exports + .get::(invoke_fn) + .map_err(|e| format!("Invoke failed: {:?}", e))? + .call(&args) + .map_err(|e| format!("Calling invoke fn failed: {:?}", e))?; + println!("{}({:?}) returned {:?}", invoke_fn, args, invoke_result); + return Ok(()); + } else { + result = start.call(); + } + + #[cfg(unix)] + { + if cv_pushed { + pop_code_version().unwrap(); + } + } + + if let Err(ref err) = result { + if let Some(error_code) = err.0.downcast_ref::() { + std::process::exit(error_code.code as i32) + } + return Err(format!("error: {:?}", err)); + } + } + Ok(()) +} + +#[cfg(feature = "backend-llvm")] +impl LLVMCallbacks for LLVMCLIOptions { + fn preopt_ir_callback(&mut self, module: &InkwellModule) { + if let Some(filename) = &self.pre_opt_ir { + module.print_to_file(filename).unwrap(); + } + } + + fn postopt_ir_callback(&mut self, module: &InkwellModule) { + if let Some(filename) = &self.post_opt_ir { + module.print_to_file(filename).unwrap(); + } + } + + fn obj_memory_buffer_callback(&mut self, memory_buffer: &InkwellMemoryBuffer) { + if let Some(filename) = &self.obj_file { + let mem_buf_slice = memory_buffer.as_slice(); + let mut file = File::create(filename).unwrap(); + let mut pos = 0; + while pos < mem_buf_slice.len() { + pos += file.write(&mem_buf_slice[pos..]).unwrap(); + } + } + } +} + +/// Execute a wasm/wat file +fn execute_wasm(options: &Run) -> Result<(), String> { + if options.generate_debug_info && options.backend != Backend::Cranelift { + return Err("Generating debug information is currently only available with the `cranelift` backend.".to_owned()); + } + + let disable_cache = options.disable_cache; + + let mapped_dirs = get_mapped_dirs(&options.mapped_dirs[..])?; + #[cfg(feature = "wasi")] + let env_vars = get_env_var_args(&options.env_vars[..])?; + let wasm_path = &options.path; + + #[allow(unused_mut)] + let mut wasm_binary: Vec = read_file_contents(wasm_path).map_err(|err| { + format!( + "Can't read the file {}: {}", + wasm_path.as_os_str().to_string_lossy(), + err + ) + })?; + + let em_symbol_map = if let Some(em_symbol_map_path) = options.em_symbol_map.clone() { + let em_symbol_map_content: String = read_to_string(&em_symbol_map_path) + .map_err(|err| { + format!( + "Can't read symbol map file {}: {}", + em_symbol_map_path.as_os_str().to_string_lossy(), + err, + ) + })? + .to_owned(); + let mut em_symbol_map = HashMap::new(); + for line in em_symbol_map_content.lines() { + let mut split = line.split(':'); + let num_str = if let Some(ns) = split.next() { + ns + } else { + return Err( + "Can't parse symbol map (expected each entry to be of the form: `0:func_name`)" + .to_string(), + ); + }; + let num: u32 = num_str.parse::().map_err(|err| { + format!( + "Failed to parse {} as a number in symbol map: {}", + num_str, err + ) + })?; + let name_str: String = if let Some(name_str) = split.next() { + name_str + } else { + return Err( + "Can't parse symbol map (expected each entry to be of the form: `0:func_name`)" + .to_string(), + ); + } + .to_owned(); + + em_symbol_map.insert(num, name_str); + } + Some(em_symbol_map) + } else { + None + }; + + // Don't error on --enable-all for other backends. + if options.features.simd { + #[cfg(feature = "backend-llvm")] + { + if options.backend != Backend::LLVM { + return Err("SIMD is only supported in the LLVM backend for now".to_string()); + } + } + #[cfg(not(feature = "backend-llvm"))] + return Err("SIMD is not supported in this backend".to_string()); + } + + if !crate::utils::is_wasm_binary(&wasm_binary) { + #[cfg(feature = "wabt")] + { + let features = options.features.into_wabt_features(); + wasm_binary = wabt::wat2wasm_with_features(wasm_binary, features).map_err(|e| { + format!( + "Can't convert from wast to wasm because \"{}\"{}", + e, + match e.kind() { + wabt::ErrorKind::Deserialize(s) + | wabt::ErrorKind::Parse(s) + | wabt::ErrorKind::ResolveNames(s) + | wabt::ErrorKind::Validate(s) => format!(":\n\n{}", s), + wabt::ErrorKind::Nul + | wabt::ErrorKind::WriteText + | wabt::ErrorKind::NonUtf8Result + | wabt::ErrorKind::WriteBinary => "".to_string(), + } + ) + })?; + } + + #[cfg(not(feature = "wabt"))] + { + return Err( + "Input is not a wasm binary and the `wabt` feature is not enabled".to_string(), + ); + } + } + + let compiler: Box = get_compiler_by_backend(options.backend, options) + .ok_or_else(|| { + format!( + "the requested backend, \"{}\", is not enabled", + options.backend.to_string() + ) + })?; + + #[allow(unused_mut)] + let mut backend_specific_config = None; + #[cfg(feature = "backend-llvm")] + { + if options.backend == Backend::LLVM { + backend_specific_config = Some(BackendCompilerConfig(Box::new(LLVMBackendConfig { + callbacks: Some(Rc::new(RefCell::new(options.backend_llvm_options.clone()))), + }))) + } + } + + let track_state = options.track_state; + + #[cfg(feature = "loader-kernel")] + let is_kernel_loader = if let Some(LoaderName::Kernel) = options.loader { + true + } else { + false + }; + + #[cfg(not(feature = "loader-kernel"))] + let is_kernel_loader = false; + + let module = if is_kernel_loader { + compile_with_config_with( + &wasm_binary[..], + CompilerConfig { + symbol_map: em_symbol_map.clone(), + memory_bound_check_mode: MemoryBoundCheckMode::Disable, + enforce_stack_check: true, + + // Kernel loader does not support explicit preemption checkpoints. + full_preemption: false, + + track_state, + features: options.features.into_backend_features(), + backend_specific_config, + ..Default::default() + }, + &*compiler, + ) + .map_err(|e| format!("Can't compile module: {:?}", e))? + } else if disable_cache { + compile_with_config_with( + &wasm_binary[..], + CompilerConfig { + symbol_map: em_symbol_map.clone(), + track_state, + + // Enable full preemption if state tracking is enabled. + // Preemption only makes sense with state information. + full_preemption: track_state, + + features: options.features.into_backend_features(), + backend_specific_config, + generate_debug_info: options.generate_debug_info, + ..Default::default() + }, + &*compiler, + ) + .map_err(|e| format!("Can't compile module: {:?}", e))? + } else { + // If we have cache enabled + let wasmer_cache_dir = get_cache_dir(); + + // We create a new cache instance. + // It could be possible to use any other kinds of caching, as long as they + // implement the Cache trait (with save and load functions) + let mut cache = unsafe { + FileSystemCache::new(wasmer_cache_dir).map_err(|e| format!("Cache error: {:?}", e))? + }; + let load_cache_key = || -> Result<_, String> { + if let Some(ref prehashed_cache_key) = options.cache_key { + if let Ok(module) = + WasmHash::decode(prehashed_cache_key).and_then(|prehashed_key| { + cache.load_with_backend(prehashed_key, options.backend) + }) + { + // debug!("using prehashed key: {}", prehashed_cache_key); + return Ok(module); + } + } + // We generate a hash for the given binary, so we can use it as key + // for the Filesystem cache + let hash = WasmHash::generate(&wasm_binary); + + // cache.load will return the Module if it's able to deserialize it properly, and an error if: + // * The file is not found + // * The file exists, but it's corrupted or can't be converted to a module + match cache.load_with_backend(hash, options.backend) { + Ok(module) => { + // We are able to load the module from cache + Ok(module) + } + Err(_) => { + let module = compile_with_config_with( + &wasm_binary[..], + CompilerConfig { + symbol_map: em_symbol_map.clone(), + track_state, + features: options.features.into_backend_features(), + backend_specific_config, + ..Default::default() + }, + &*compiler, + ) + .map_err(|e| format!("Can't compile module: {:?}", e))?; + // We try to save the module into a cache file + cache.store(hash, module.clone()).unwrap_or_default(); + + Ok(module) + } + } + }; + + load_cache_key()? + }; + + if let Some(loader) = options.loader { + let mut import_object = wasmer_runtime_core::import::ImportObject::new(); + import_object.allow_missing_functions = true; // Import initialization might be left to the loader. + let instance = module + .instantiate(&import_object) + .map_err(|e| format!("Can't instantiate loader module: {:?}", e))?; + + let mut args: Vec = Vec::new(); + for arg in options.args.iter() { + let x = arg.as_str().parse().map_err(|_| { + format!( + "Can't parse the provided argument {:?} as a integer", + arg.as_str() + ) + })?; + args.push(Value::I32(x)); + } + + let index = instance.resolve_func("_start").map_err(|_| { + format!("The loader requires a _start function to be present in the module") + })?; + + let mut ins: Box> = match loader { + LoaderName::Local => Box::new( + instance + .load(LocalLoader) + .map_err(|e| format!("Can't use the local loader: {:?}", e))?, + ), + #[cfg(feature = "loader-kernel")] + LoaderName::Kernel => Box::new( + instance + .load(::wasmer_kernel_loader::KernelLoader) + .map_err(|e| format!("Can't use the kernel loader: {:?}", e))?, + ), + }; + println!("{:?}", ins.call(index, &args)); + return Ok(()); + } + + // TODO: refactor this + if wasmer_emscripten::is_emscripten_module(&module) { + let mut emscripten_globals = wasmer_emscripten::EmscriptenGlobals::new(&module)?; + let import_object = wasmer_emscripten::generate_emscripten_env(&mut emscripten_globals); + let mut instance = module + .instantiate(&import_object) + .map_err(|e| format!("Can't instantiate emscripten module: {:?}", e))?; + + wasmer_emscripten::run_emscripten_instance( + &module, + &mut instance, + &mut emscripten_globals, + if let Some(cn) = &options.command_name { + cn + } else { + options.path.to_str().unwrap() + }, + options.args.iter().map(|arg| arg.as_str()).collect(), + options.em_entrypoint.clone(), + mapped_dirs, + ) + .map_err(|e| format!("{:?}", e))?; + } else { + #[cfg(feature = "wasi")] + let wasi_version = wasmer_wasi::get_wasi_version(&module, true); + #[cfg(feature = "wasi")] + let is_wasi = wasi_version.is_some(); + #[cfg(not(feature = "wasi"))] + let is_wasi = false; + + if is_wasi { + #[cfg(feature = "wasi")] + execute_wasi( + wasi_version.unwrap(), + options, + env_vars, + module, + mapped_dirs, + &wasm_binary, + )?; + } else { + let import_object = wasmer_runtime_core::import::ImportObject::new(); + let instance = module + .instantiate(&import_object) + .map_err(|e| format!("Can't instantiate module: {:?}", e))?; + + let invoke_fn = match options.invoke.as_ref() { + Some(fun) => fun, + _ => "main", + }; + let args = options.parse_args(&module, invoke_fn)?; + + #[cfg(unix)] + let cv_pushed = + if let Some(msm) = instance.module.runnable_module.get_module_state_map() { + push_code_version(CodeVersion { + baseline: true, + msm: msm, + base: instance.module.runnable_module.get_code().unwrap().as_ptr() as usize, + backend: options.backend.to_string(), + runnable_module: instance.module.runnable_module.clone(), + }); + true + } else { + false + }; + + let result = instance + .exports + .get::(&invoke_fn) + .map_err(|e| format!("{:?}", e))? + .call(&args) + .map_err(|e| format!("{:?}", e))?; + + #[cfg(unix)] + { + if cv_pushed { + pop_code_version().unwrap(); + } + } + println!("{}({:?}) returned {:?}", invoke_fn, args, result); + } + } + + Ok(()) +} + +#[cfg(feature = "managed")] +fn interactive_shell(mut ctx: InteractiveShellContext) -> ShellExitOperation { + use std::io::Write; + + let mut stdout = ::std::io::stdout(); + let stdin = ::std::io::stdin(); + + loop { + print!("Wasmer> "); + stdout.flush().unwrap(); + let mut line = String::new(); + stdin.read_line(&mut line).unwrap(); + let mut parts = line.split(" ").filter(|x| x.len() > 0).map(|x| x.trim()); + + let cmd = parts.next(); + if cmd.is_none() { + println!("Command required"); + continue; + } + let cmd = cmd.unwrap(); + + match cmd { + "snapshot" => { + let path = parts.next(); + if path.is_none() { + println!("Usage: snapshot [out_path]"); + continue; + } + let path = path.unwrap(); + + if let Some(ref image) = ctx.image { + let buf = image.to_bytes(); + let mut f = match File::create(path) { + Ok(x) => x, + Err(e) => { + println!("Cannot open output file at {}: {:?}", path, e); + continue; + } + }; + if let Err(e) = f.write_all(&buf) { + println!("Cannot write to output file at {}: {:?}", path, e); + continue; + } + println!("Done"); + } else { + println!("Program state not available"); + } + } + "continue" | "c" => { + if let Some(image) = ctx.image.take() { + return ShellExitOperation::ContinueWith(image); + } else { + println!("Program state not available, cannot continue execution"); + } + } + "backtrace" | "bt" => { + if let Some(ref image) = ctx.image { + println!("{}", image.execution_state.output()); + } else { + println!("State not available"); + } + } + "exit" | "quit" => { + exit(0); + } + "" => {} + _ => { + println!("Unknown command: {}", cmd); + } + } + } +} + +#[allow(unused_variables, unreachable_code)] +fn get_backend(backend: Backend, path: &PathBuf) -> Backend { + // Update backend when a backend flag is `auto`. + // Use the Singlepass backend if it's enabled and the file provided is larger + // than 10MiB (10485760 bytes), or it's enabled and the target architecture + // is AArch64. Otherwise, use the Cranelift backend. + match backend { + Backend::Auto => { + #[cfg(feature = "backend-singlepass")] + { + let binary_size = match &path.metadata() { + Ok(wasm_binary) => wasm_binary.len(), + Err(_e) => 0, + }; + if binary_size > 10485760 || cfg!(target_arch = "aarch64") { + return Backend::Singlepass; + } + } + + #[cfg(feature = "backend-cranelift")] + { + return Backend::Cranelift; + } + + #[cfg(feature = "backend-llvm")] + { + return Backend::LLVM; + } + + panic!("Can't find any backend"); + } + backend => backend, + } +} + +fn get_compiler_by_backend(backend: Backend, _opts: &Run) -> Option> { + Some(match backend { + #[cfg(feature = "backend-singlepass")] + Backend::Singlepass => { + use wasmer_runtime_core::codegen::MiddlewareChain; + use wasmer_runtime_core::codegen::StreamingCompiler; + use wasmer_singlepass_backend::ModuleCodeGenerator as SinglePassMCG; + + let opts = _opts.clone(); + let middlewares_gen = move || { + let mut middlewares = MiddlewareChain::new(); + if opts.call_trace { + use wasmer_middleware_common::call_trace::CallTrace; + middlewares.push(CallTrace::new()); + } + if opts.block_trace { + use wasmer_middleware_common::block_trace::BlockTrace; + middlewares.push(BlockTrace::new()); + } + middlewares + }; + + let c: StreamingCompiler = + StreamingCompiler::new(middlewares_gen); + Box::new(c) + } + #[cfg(feature = "backend-cranelift")] + Backend::Cranelift => Box::new(CraneliftCompiler::new()), + #[cfg(feature = "backend-llvm")] + Backend::LLVM => Box::new(LLVMCompiler::new()), + _ => return None, + }) +} + +#[test] +fn filesystem_cache_should_work() -> Result<(), String> { + let wasmer_cache_dir = get_cache_dir(); + + unsafe { FileSystemCache::new(wasmer_cache_dir).map_err(|e| format!("Cache error: {:?}", e))? }; + + Ok(()) +} diff --git a/src/commands/selfupdate.rs b/src/commands/selfupdate.rs new file mode 100644 index 00000000000..7f3c0bb5d5e --- /dev/null +++ b/src/commands/selfupdate.rs @@ -0,0 +1,31 @@ +//! When wasmer self-update is executed, this is what gets executed +use std::process::{Command, Stdio}; + +pub struct SelfUpdate; + +impl SelfUpdate { + #[cfg(not(target_os = "windows"))] + pub fn execute() { + println!("Fetching latest installer"); + let cmd = Command::new("curl") + .arg("https://get.wasmer.io") + .arg("-sSfL") + .stdout(Stdio::piped()) + .spawn() + .unwrap(); + + let mut process = Command::new("sh") + .stdin(cmd.stdout.unwrap()) + .stdout(Stdio::inherit()) + .spawn() + .ok() + .expect("Failed to execute."); + + process.wait().unwrap(); + } + + #[cfg(target_os = "windows")] + pub fn execute() { + println!("Self update is not supported on Windows. Use install instructions on the Wasmer homepage: https://wasmer.io"); + } +} diff --git a/src/commands/validate.rs b/src/commands/validate.rs new file mode 100644 index 00000000000..adc0f787efe --- /dev/null +++ b/src/commands/validate.rs @@ -0,0 +1,56 @@ +use crate::common::PrestandardFeatures; +use crate::utils::{is_wasm_binary, read_file_contents}; +use std::path::PathBuf; +use std::process::exit; +use structopt::StructOpt; + +#[derive(Debug, StructOpt)] +pub struct Validate { + /// Input file + #[structopt(parse(from_os_str))] + path: PathBuf, + + #[structopt(flatten)] + features: PrestandardFeatures, +} + +impl Validate { + /// Runs logic for the `validate` subcommand + pub fn execute(self) { + match validate_wasm(self) { + Err(message) => { + eprintln!("Error: {}", message); + exit(-1); + } + _ => (), + } + } +} + +fn validate_wasm(validate: Validate) -> Result<(), String> { + let wasm_path = validate.path; + let wasm_path_as_str = wasm_path.to_str().unwrap(); + + let wasm_binary: Vec = read_file_contents(&wasm_path).map_err(|err| { + format!( + "Can't read the file {}: {}", + wasm_path.as_os_str().to_string_lossy(), + err + ) + })?; + + if !is_wasm_binary(&wasm_binary) { + return Err(format!( + "Cannot recognize \"{}\" as a WASM binary", + wasm_path_as_str, + )); + } + + wasmer_runtime_core::validate_and_report_errors_with_features( + &wasm_binary, + validate.features.into_backend_features(), + ) + .map_err(|err| format!("Validation failed: {}", err))?; + + Ok(()) +} diff --git a/src/common.rs b/src/common.rs new file mode 100644 index 00000000000..14b865c6f08 --- /dev/null +++ b/src/common.rs @@ -0,0 +1,62 @@ +use std::env; +use std::path::PathBuf; +use structopt::StructOpt; +use wasmer_runtime::{Features, VERSION}; + +#[derive(Debug, StructOpt, Clone)] +pub struct PrestandardFeatures { + /// Enable support for the SIMD proposal. + #[structopt(long = "enable-simd")] + pub simd: bool, + + /// Enable support for the threads proposal. + #[structopt(long = "enable-threads")] + pub threads: bool, + + /// Enable support for all pre-standard proposals. + #[structopt(long = "enable-all")] + pub all: bool, +} + +impl PrestandardFeatures { + /// Generate [`wabt::Features`] struct from CLI options + #[cfg(feature = "wabt")] + pub fn into_wabt_features(&self) -> wabt::Features { + let mut features = wabt::Features::new(); + if self.simd || self.all { + features.enable_simd(); + } + if self.threads || self.all { + features.enable_threads(); + } + features.enable_sign_extension(); + features.enable_sat_float_to_int(); + features + } + + /// Generate [`Features`] struct from CLI options + pub fn into_backend_features(&self) -> Features { + Features { + simd: self.simd || self.all, + threads: self.threads || self.all, + } + } +} + +/// Get the cache dir +pub fn get_cache_dir() -> PathBuf { + match env::var("WASMER_CACHE_DIR") { + Ok(dir) => { + let mut path = PathBuf::from(dir); + path.push(VERSION); + path + } + Err(_) => { + // We use a temporal directory for saving cache files + let mut temp_dir = env::temp_dir(); + temp_dir.push("wasmer"); + temp_dir.push(VERSION); + temp_dir + } + } +} diff --git a/src/lib.rs b/src/lib.rs index 72a758a182c..9a15d16b072 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -10,13 +10,8 @@ #![doc(html_favicon_url = "https://wasmer.io/static/icons/favicon.ico")] #![doc(html_logo_url = "https://avatars3.githubusercontent.com/u/44205449?s=200&v=4")] -extern crate wasmer_runtime_core; -#[macro_use] -extern crate log; - -#[macro_use] -pub mod update; +pub mod commands; +pub mod common; #[cfg(feature = "debug")] pub mod logging; pub mod utils; -pub mod webassembly; diff --git a/src/update.rs b/src/update.rs deleted file mode 100644 index df3bcfe289e..00000000000 --- a/src/update.rs +++ /dev/null @@ -1,21 +0,0 @@ -//! When wasmer self-update is executed, this is what gets executed -use std::process::{Command, Stdio}; - -pub fn self_update() { - println!("Fetching latest installer"); - let cmd = Command::new("curl") - .arg("https://get.wasmer.io") - .arg("-sSfL") - .stdout(Stdio::piped()) - .spawn() - .unwrap(); - - let mut the_process = Command::new("sh") - .stdin(cmd.stdout.unwrap()) - .stdout(Stdio::inherit()) - .spawn() - .ok() - .expect("Failed to execute."); - - the_process.wait().unwrap(); -} diff --git a/src/utils.rs b/src/utils.rs index 20abb91d51a..501f2a449c2 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -1,5 +1,9 @@ //! Utility functions for the WebAssembly module +use std::fs::File; +use std::io; +use std::io::Read; +use std::path::PathBuf; use wasmer_runtime::{types::Type, Module, Value}; use wasmer_runtime_core::{backend::SigRegistry, module::ExportIndex}; @@ -120,6 +124,16 @@ pub fn parse_args( } } +/// Read the contents of a file +pub fn read_file_contents(path: &PathBuf) -> Result, io::Error> { + let mut buffer: Vec = Vec::new(); + let mut file = File::open(path)?; + file.read_to_end(&mut buffer)?; + // We force to close the file + drop(file); + Ok(buffer) +} + /// Whether or not Wasmer should print with color pub fn wasmer_should_print_color() -> bool { std::env::var("WASMER_COLOR") diff --git a/src/webassembly.rs b/src/webassembly.rs deleted file mode 100644 index 0df8b59e8b1..00000000000 --- a/src/webassembly.rs +++ /dev/null @@ -1,72 +0,0 @@ -use std::panic; -pub use wasmer_runtime::compile_with_config_with; -use wasmer_runtime::{self as runtime, error::Result, ImportObject, Instance, Module}; - -pub struct ResultObject { - /// A webassembly::Module object representing the compiled WebAssembly module. - /// This Module can be instantiated again - pub module: Module, - /// A webassembly::Instance object that contains all the Exported WebAssembly - /// functions. - pub instance: Box, -} - -#[derive(PartialEq)] -pub enum InstanceABI { - Emscripten, - WASI, - None, -} - -/// The webassembly::instantiate() function allows you to compile and -/// instantiate WebAssembly code -/// Params: -/// * `buffer_source`: A `Vec` containing the -/// binary code of the .wasm module you want to compile. -/// * `import_object`: An object containing the values to be imported -/// into the newly-created Instance, such as functions or -/// webassembly::Memory objects. There must be one matching property -/// for each declared import of the compiled module or else a -/// webassembly::LinkError is thrown. -/// Errors: -/// If the operation fails, the Result rejects with a -/// webassembly::CompileError, webassembly::LinkError, or -/// webassembly::RuntimeError, depending on the cause of the failure. -pub fn instantiate(buffer_source: &[u8], import_object: ImportObject) -> Result { - debug!("webassembly - compiling module"); - let module = compile(&buffer_source[..])?; - - debug!("webassembly - instantiating"); - let instance = module.instantiate(&import_object)?; - - debug!("webassembly - instance created"); - Ok(ResultObject { - module, - instance: Box::new(instance), - }) -} - -/// The webassembly::instantiate_streaming() function compiles and instantiates -/// a WebAssembly module directly from a streamed underlying source. -/// This is the most efficient, optimized way to load wasm code. -pub fn instantiate_streaming( - _buffer_source: Vec, - _import_object: ImportObject, -) -> Result { - unimplemented!(); -} - -/// The webassembly::compile() function compiles a webassembly::Module -/// from WebAssembly binary code. This function is useful if it -/// is necessary to a compile a module before it can be instantiated -/// (otherwise, the webassembly::instantiate() function should be used). -/// Params: -/// * `buffer_source`: A `Vec` containing the -/// binary code of the .wasm module you want to compile. -/// Errors: -/// If the operation fails, the Result rejects with a -/// webassembly::CompileError. -pub fn compile(buffer_source: &[u8]) -> Result { - let module = runtime::compile(buffer_source)?; - Ok(module) -} From c312bdc782f4a2e4a6425da5871d7e144041108c Mon Sep 17 00:00:00 2001 From: Syrus Date: Mon, 6 Apr 2020 16:30:49 -0700 Subject: [PATCH 08/12] Improved imports --- src/commands/run.rs | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/src/commands/run.rs b/src/commands/run.rs index ddab3e9d328..73488627e94 100644 --- a/src/commands/run.rs +++ b/src/commands/run.rs @@ -7,41 +7,44 @@ use std::fs::File; use std::path::PathBuf; use std::process::exit; use std::str::FromStr; -use wasmer_runtime::compile_with_config_with; +#[cfg(feature = "backend-llvm")] +use std::{cell::RefCell, rc::Rc}; use structopt::StructOpt; -#[cfg(feature = "backend-cranelift")] -use wasmer_clif_backend::CraneliftCompiler; -#[cfg(feature = "backend-llvm")] -use wasmer_llvm_backend::{ - InkwellMemoryBuffer, InkwellModule, LLVMBackendConfig, LLVMCallbacks, LLVMCompiler, -}; use wasmer_runtime::{ cache::{Cache as BaseCache, FileSystemCache, WasmHash}, - Backend, DynFunc, Value, + compile_with_config_with, Backend, DynFunc, Value, }; -#[cfg(feature = "managed")] -use wasmer_runtime_core::tiering::{run_tiering, InteractiveShellContext, ShellExitOperation}; use wasmer_runtime_core::{ self, backend::{Compiler, CompilerConfig, MemoryBoundCheckMode}, loader::{Instance as LoadedInstance, LocalLoader}, Module, }; + #[cfg(unix)] use wasmer_runtime_core::{ fault::{pop_code_version, push_code_version}, state::CodeVersion, }; -#[cfg(feature = "wasi")] -use wasmer_wasi; + +#[cfg(feature = "backend-cranelift")] +use wasmer_clif_backend::CraneliftCompiler; #[cfg(feature = "backend-llvm")] -use std::{cell::RefCell, rc::Rc}; +use wasmer_llvm_backend::{ + InkwellMemoryBuffer, InkwellModule, LLVMBackendConfig, LLVMCallbacks, LLVMCompiler, +}; #[cfg(feature = "backend-llvm")] use wasmer_runtime_core::backend::BackendCompilerConfig; +#[cfg(feature = "managed")] +use wasmer_runtime_core::tiering::{run_tiering, InteractiveShellContext, ShellExitOperation}; + +#[cfg(feature = "wasi")] +use wasmer_wasi; + #[cfg(not(any( feature = "backend-cranelift", feature = "backend-llvm", From 20d4a5682e1bd61645a7d1a588437724858a63d3 Mon Sep 17 00:00:00 2001 From: Syrus Date: Mon, 6 Apr 2020 16:31:31 -0700 Subject: [PATCH 09/12] Added changes into changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index aeed049e7c4..3cb6f46439b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## **[Unreleased]** +- [#1357](https://github.com/wasmerio/wasmer/pull/1357) Refactored bin commands into separate files - [#1345](https://github.com/wasmerio/wasmer/pull/1345) Adding ARM testing in Azure Pipelines - [#1335](https://github.com/wasmerio/wasmer/pull/1335) Change mutability of `memory` to `const` in `wasmer_memory_data_length` in the C API - [#1329](https://github.com/wasmerio/wasmer/pull/1329) New numbers and strings instructions for WIT From 3579d0d445aef963b3934800cee5b395fadd9653 Mon Sep 17 00:00:00 2001 From: Mark McCaskey Date: Mon, 6 Apr 2020 16:47:06 -0700 Subject: [PATCH 10/12] Fix emtests and wasitests to use the correct backend --- Makefile | 20 +++++----- tests/emtests/_common.rs | 40 ++++++++++++++++--- .../integration_tests}/cowsay/README.md | 0 .../integration_tests}/cowsay/test.sh | 0 .../integration_tests}/lua/README.md | 0 .../integration_tests}/lua/test.sh | 0 .../integration_tests}/nginx/README.md | 0 .../integration_tests}/nginx/html/index.html | 0 .../integration_tests}/nginx/logs/nginx.pid | 0 .../integration_tests}/nginx/nginx.conf | 0 .../integration_tests}/nginx/test.sh | 0 tests/wasitests/_common.rs | 36 ++++++++++++++++- 12 files changed, 81 insertions(+), 15 deletions(-) rename {integration_tests => tests/integration_tests}/cowsay/README.md (100%) rename {integration_tests => tests/integration_tests}/cowsay/test.sh (100%) rename {integration_tests => tests/integration_tests}/lua/README.md (100%) rename {integration_tests => tests/integration_tests}/lua/test.sh (100%) rename {integration_tests => tests/integration_tests}/nginx/README.md (100%) rename {integration_tests => tests/integration_tests}/nginx/html/index.html (100%) rename {integration_tests => tests/integration_tests}/nginx/logs/nginx.pid (100%) rename {integration_tests => tests/integration_tests}/nginx/nginx.conf (100%) rename {integration_tests => tests/integration_tests}/nginx/test.sh (100%) diff --git a/Makefile b/Makefile index a6b40165a6c..69b9261eaa0 100644 --- a/Makefile +++ b/Makefile @@ -53,13 +53,13 @@ spectests: spectests-singlepass spectests-cranelift spectests-llvm # Emscripten tests emtests-singlepass: - cargo test emtest --release --no-default-features --features "wasi backend-singlepass" -- --test-threads=1 + WASMER_TEST_SINGLEPASS=1 cargo test emtest --release --no-default-features --features "wasi backend-singlepass" -- --test-threads=1 emtests-cranelift: - cargo test emtest --release --no-default-features --features "wasi backend-cranelift" -- --test-threads=1 + WASMER_TEST_CRANELIFT=1 cargo test emtest --release --no-default-features --features "wasi backend-cranelift" -- --test-threads=1 emtests-llvm: - cargo test emtest --release --no-default-features --features "wasi backend-llvm" -- --test-threads=1 + WASMER_TEST_LLVM=1 cargo test emtest --release --no-default-features --features "wasi backend-llvm" -- --test-threads=1 emtests-unit: cargo test emscripten --release @@ -86,13 +86,13 @@ wasitests-setup: mkdir -p tests/wasi_test_resources/test_fs/temp wasitests-singlepass: wasitests-setup - cargo test wasitest --release --no-default-features --features "wasi backend-singlepass" -- --test-threads=1 + WASMER_TEST_SINGLEPASS=1 cargo test wasitest --release --no-default-features --features "wasi backend-singlepass" -- --test-threads=1 wasitests-cranelift: wasitests-setup - cargo test wasitest --release --no-default-features --features "wasi backend-cranelift" -- --test-threads=1 --nocapture + WASMER_TEST_CRANELIFT=1 cargo test wasitest --release --no-default-features --features "wasi backend-cranelift" -- --test-threads=1 --nocapture wasitests-llvm: wasitests-setup - cargo test wasitest --release --no-default-features --features "wasi backend-llvm" -- --test-threads=1 + WASMER_TEST_LLVM=1 cargo test wasitest --release --no-default-features --features "wasi backend-llvm" -- --test-threads=1 wasitests-unit: wasitests-setup cargo test --manifest-path lib/wasi/Cargo.toml --release @@ -174,9 +174,9 @@ test-android: # Integration tests integration-tests: release-clif examples echo "Running Integration Tests" - ./integration_tests/lua/test.sh - ./integration_tests/nginx/test.sh - ./integration_tests/cowsay/test.sh + ./tests/integration_tests/lua/test.sh + ./tests/integration_tests/nginx/test.sh + ./tests/integration_tests/cowsay/test.sh examples: cargo run --example plugin @@ -287,12 +287,14 @@ release-llvm: cargo build --release --features backend-llvm,experimental-io-devices bench-singlepass: +# NOTE this will run some benchmarks using clif; TODO: fix this cargo bench --all --no-default-features --features "backend-singlepass" \ --exclude wasmer-clif-backend --exclude wasmer-llvm-backend --exclude wasmer-kernel-loader bench-clif: cargo bench --all --no-default-features --features "backend-cranelift" \ --exclude wasmer-singlepass-backend --exclude wasmer-llvm-backend --exclude wasmer-kernel-loader bench-llvm: +# NOTE this will run some benchmarks using clif; TODO: fix this cargo bench --all --no-default-features --features "backend-llvm" \ --exclude wasmer-singlepass-backend --exclude wasmer-clif-backend --exclude wasmer-kernel-loader diff --git a/tests/emtests/_common.rs b/tests/emtests/_common.rs index 2e6c590d907..d96ed0728d9 100644 --- a/tests/emtests/_common.rs +++ b/tests/emtests/_common.rs @@ -1,3 +1,35 @@ +use std::env; +use wasmer_runtime::Backend; + +pub fn get_backend() -> Option { + #[cfg(feature = "backend-cranelift")] + { + if let Ok(v) = env::var("WASMER_TEST_CLIF") { + if v == "1" { + return Some(Backend::Cranelift); + } + } + } + #[cfg(feature = "backend-llvm")] + { + if let Ok(v) = env::var("WASMER_TEST_LLVM") { + if v == "1" { + return Some(Backend::LLVM); + } + } + } + #[cfg(feature = "backend-singlepass")] + { + if let Ok(v) = env::var("WASMER_TEST_SINGLEPASS") { + if v == "1" { + return Some(Backend::Singlepass); + } + } + } + + None +} + macro_rules! assert_emscripten_output { ($file:expr, $name:expr, $args:expr, $expected:expr) => {{ @@ -5,16 +37,14 @@ macro_rules! assert_emscripten_output { EmscriptenGlobals, generate_emscripten_env, }; - use wasmer_runtime::compile; use wasmer_dev_utils::stdio::StdioCapturer; let wasm_bytes = include_bytes!($file); + let backend = $crate::emtests::_common::get_backend().expect("Please set one of `WASMER_TEST_CLIF`, `WASMER_TEST_LLVM`, or `WASMER_TEST_SINGELPASS` to `1`."); + let compiler = wasmer_runtime::compiler_for_backend(backend).expect("The desired compiler was not found!"); - let module = compile(&wasm_bytes[..]) - .expect("WASM can't be compiled"); + let module = wasmer_runtime::compile_with_config_with(&wasm_bytes[..], Default::default(), &*compiler).expect("WASM can't be compiled"); -// let module = compile(&wasm_bytes[..]) -// .map_err(|err| format!("Can't create the WebAssembly module: {}", err)).unwrap(); // NOTE: Need to figure what the unwrap is for ?? let mut emscripten_globals = EmscriptenGlobals::new(&module).expect("globals are valid"); let import_object = generate_emscripten_env(&mut emscripten_globals); diff --git a/integration_tests/cowsay/README.md b/tests/integration_tests/cowsay/README.md similarity index 100% rename from integration_tests/cowsay/README.md rename to tests/integration_tests/cowsay/README.md diff --git a/integration_tests/cowsay/test.sh b/tests/integration_tests/cowsay/test.sh similarity index 100% rename from integration_tests/cowsay/test.sh rename to tests/integration_tests/cowsay/test.sh diff --git a/integration_tests/lua/README.md b/tests/integration_tests/lua/README.md similarity index 100% rename from integration_tests/lua/README.md rename to tests/integration_tests/lua/README.md diff --git a/integration_tests/lua/test.sh b/tests/integration_tests/lua/test.sh similarity index 100% rename from integration_tests/lua/test.sh rename to tests/integration_tests/lua/test.sh diff --git a/integration_tests/nginx/README.md b/tests/integration_tests/nginx/README.md similarity index 100% rename from integration_tests/nginx/README.md rename to tests/integration_tests/nginx/README.md diff --git a/integration_tests/nginx/html/index.html b/tests/integration_tests/nginx/html/index.html similarity index 100% rename from integration_tests/nginx/html/index.html rename to tests/integration_tests/nginx/html/index.html diff --git a/integration_tests/nginx/logs/nginx.pid b/tests/integration_tests/nginx/logs/nginx.pid similarity index 100% rename from integration_tests/nginx/logs/nginx.pid rename to tests/integration_tests/nginx/logs/nginx.pid diff --git a/integration_tests/nginx/nginx.conf b/tests/integration_tests/nginx/nginx.conf similarity index 100% rename from integration_tests/nginx/nginx.conf rename to tests/integration_tests/nginx/nginx.conf diff --git a/integration_tests/nginx/test.sh b/tests/integration_tests/nginx/test.sh similarity index 100% rename from integration_tests/nginx/test.sh rename to tests/integration_tests/nginx/test.sh diff --git a/tests/wasitests/_common.rs b/tests/wasitests/_common.rs index d457d0ca4ca..1f7659f0698 100644 --- a/tests/wasitests/_common.rs +++ b/tests/wasitests/_common.rs @@ -1,3 +1,35 @@ +use std::env; +use wasmer_runtime::Backend; + +pub fn get_backend() -> Option { + #[cfg(feature = "backend-cranelift")] + { + if let Ok(v) = env::var("WASMER_TEST_CLIF") { + if v == "1" { + return Some(Backend::Cranelift); + } + } + } + #[cfg(feature = "backend-llvm")] + { + if let Ok(v) = env::var("WASMER_TEST_LLVM") { + if v == "1" { + return Some(Backend::LLVM); + } + } + } + #[cfg(feature = "backend-singlepass")] + { + if let Ok(v) = env::var("WASMER_TEST_SINGLEPASS") { + if v == "1" { + return Some(Backend::Singlepass); + } + } + } + + None +} + macro_rules! assert_wasi_output { ($file:expr, $name:expr, $po_dir_args: expr, $mapdir_args:expr, $envvar_args:expr, $expected:expr) => {{ use wasmer_dev_utils::stdio::StdioCapturer; @@ -5,8 +37,10 @@ macro_rules! assert_wasi_output { use wasmer_wasi::{generate_import_object_for_version, get_wasi_version}; let wasm_bytes = include_bytes!($file); + let backend = $crate::wasitests::_common::get_backend().expect("Please set one of `WASMER_TEST_CLIF`, `WASMER_TEST_LLVM`, or `WASMER_TEST_SINGELPASS` to `1`."); + let compiler = wasmer_runtime::compiler_for_backend(backend).expect("The desired compiler was not found!"); - let module = wasmer_runtime::compile(&wasm_bytes[..]).expect("WASM can't be compiled"); + let module = wasmer_runtime::compile_with_config_with(&wasm_bytes[..], Default::default(), &*compiler).expect("WASM can't be compiled"); let wasi_version = get_wasi_version(&module, true).expect("WASI module"); From 3735dc2742bdc107a0a23951424596f199185ea1 Mon Sep 17 00:00:00 2001 From: Syrus Date: Mon, 6 Apr 2020 17:00:55 -0700 Subject: [PATCH 11/12] Address feedback --- src/commands/run.rs | 4 ++-- src/utils.rs | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/commands/run.rs b/src/commands/run.rs index 73488627e94..5fa4944994b 100644 --- a/src/commands/run.rs +++ b/src/commands/run.rs @@ -2,8 +2,6 @@ use crate::common::{get_cache_dir, PrestandardFeatures}; use crate::utils::read_file_contents; use std::collections::HashMap; use std::fs::read_to_string; -#[cfg(feature = "backend-llvm")] -use std::fs::File; use std::path::PathBuf; use std::process::exit; use std::str::FromStr; @@ -462,6 +460,8 @@ impl LLVMCallbacks for LLVMCLIOptions { } fn obj_memory_buffer_callback(&mut self, memory_buffer: &InkwellMemoryBuffer) { + use std::fs::File; + use std::io::Write; if let Some(filename) = &self.obj_file { let mem_buf_slice = memory_buffer.as_slice(); let mut file = File::create(filename).unwrap(); diff --git a/src/utils.rs b/src/utils.rs index 501f2a449c2..5b082b3a75b 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -129,8 +129,6 @@ pub fn read_file_contents(path: &PathBuf) -> Result, io::Error> { let mut buffer: Vec = Vec::new(); let mut file = File::open(path)?; file.read_to_end(&mut buffer)?; - // We force to close the file - drop(file); Ok(buffer) } From 515e49c6420e7f64a41f0538f756d07a0a30edfb Mon Sep 17 00:00:00 2001 From: Mark McCaskey Date: Mon, 6 Apr 2020 17:14:27 -0700 Subject: [PATCH 12/12] Use `CRANELIFT` instead of `CLIF` in test env vars --- Makefile | 2 +- tests/emtests/_common.rs | 4 ++-- tests/spectest.rs | 2 +- tests/wasitests/_common.rs | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 69b9261eaa0..76c90e56a93 100644 --- a/Makefile +++ b/Makefile @@ -44,7 +44,7 @@ spectests-llvm: SPECTEST_TEST_LLVM=1 cargo test test_run_spectests --release --no-default-features --features "wasi backend-llvm wasmer-llvm-backend/test" -- --nocapture spectests-all: - SPECTEST_TEST_CLIF=1 SPECTEST_TEST_LLVM=1 SPECTEST_TEST_SINGLEPASS=1 \ + SPECTEST_TEST_CRANELIFT=1 SPECTEST_TEST_LLVM=1 SPECTEST_TEST_SINGLEPASS=1 \ cargo test test_run_spectests --release --no-default-features --features "wasi backend-cranelift backend-singlepass backend-llvm wasmer-llvm-backend/test" -- --nocapture --test-threads 1 diff --git a/tests/emtests/_common.rs b/tests/emtests/_common.rs index d96ed0728d9..236e264c68c 100644 --- a/tests/emtests/_common.rs +++ b/tests/emtests/_common.rs @@ -4,7 +4,7 @@ use wasmer_runtime::Backend; pub fn get_backend() -> Option { #[cfg(feature = "backend-cranelift")] { - if let Ok(v) = env::var("WASMER_TEST_CLIF") { + if let Ok(v) = env::var("WASMER_TEST_CRANELIFT") { if v == "1" { return Some(Backend::Cranelift); } @@ -40,7 +40,7 @@ macro_rules! assert_emscripten_output { use wasmer_dev_utils::stdio::StdioCapturer; let wasm_bytes = include_bytes!($file); - let backend = $crate::emtests::_common::get_backend().expect("Please set one of `WASMER_TEST_CLIF`, `WASMER_TEST_LLVM`, or `WASMER_TEST_SINGELPASS` to `1`."); + let backend = $crate::emtests::_common::get_backend().expect("Please set one of `WASMER_TEST_CRANELIFT`, `WASMER_TEST_LLVM`, or `WASMER_TEST_SINGELPASS` to `1`."); let compiler = wasmer_runtime::compiler_for_backend(backend).expect("The desired compiler was not found!"); let module = wasmer_runtime::compile_with_config_with(&wasm_bytes[..], Default::default(), &*compiler).expect("WASM can't be compiled"); diff --git a/tests/spectest.rs b/tests/spectest.rs index 517aefe62e4..4ecc149e4c9 100644 --- a/tests/spectest.rs +++ b/tests/spectest.rs @@ -93,7 +93,7 @@ mod tests { fn get_compilers_to_test() -> Vec<&'static str> { let mut out = vec![]; - if let Ok(v) = env::var("SPECTEST_TEST_CLIF") { + if let Ok(v) = env::var("SPECTEST_TEST_CRANELIFT") { if v == "1" { out.push("clif"); } diff --git a/tests/wasitests/_common.rs b/tests/wasitests/_common.rs index 1f7659f0698..a747f18eea5 100644 --- a/tests/wasitests/_common.rs +++ b/tests/wasitests/_common.rs @@ -4,7 +4,7 @@ use wasmer_runtime::Backend; pub fn get_backend() -> Option { #[cfg(feature = "backend-cranelift")] { - if let Ok(v) = env::var("WASMER_TEST_CLIF") { + if let Ok(v) = env::var("WASMER_TEST_CRANELIFT") { if v == "1" { return Some(Backend::Cranelift); } @@ -37,7 +37,7 @@ macro_rules! assert_wasi_output { use wasmer_wasi::{generate_import_object_for_version, get_wasi_version}; let wasm_bytes = include_bytes!($file); - let backend = $crate::wasitests::_common::get_backend().expect("Please set one of `WASMER_TEST_CLIF`, `WASMER_TEST_LLVM`, or `WASMER_TEST_SINGELPASS` to `1`."); + let backend = $crate::wasitests::_common::get_backend().expect("Please set one of `WASMER_TEST_CRANELIFT`, `WASMER_TEST_LLVM`, or `WASMER_TEST_SINGELPASS` to `1`."); let compiler = wasmer_runtime::compiler_for_backend(backend).expect("The desired compiler was not found!"); let module = wasmer_runtime::compile_with_config_with(&wasm_bytes[..], Default::default(), &*compiler).expect("WASM can't be compiled");