# Compilers
# SIMD
singlepass spec::simd # Singlepass doesn't support yet SIMD (no one asked for this feature)
singlepass relaxed # Singlepass doesn't support relaxed SIMD yet
singlepass wasmer::simd_generated_ext_ops
singlepass wasmer::simd

# Exception handling
singlepass      spec::throw
singlepass      spec::try_table
singlepass      wasmer::exception_handling
windows         spec::throw
windows         spec::try_table
windows         wasmer::exception_handling
macos+cranelift spec::throw
macos+cranelift spec::try_table
macos+cranelift wasmer::exception_handling

# Misc
singlepass wide_arithmetic
singlepass spec::linking
cranelift spec::linking
llvm spec::linking

# Tail-call
singlepass return_call
cranelift return_call

# Traps
## Traps. Tracing doesn't work properly in Singlepass
## Unwinding is not properly implemented in Singlepass
# Needs investigation
singlepass+aarch64+macos traps::test_trap_trace
cranelift+aarch64+macos    traps::test_trap_trace
llvm+aarch64    traps::test_trap_trace
llvm+riscv64    traps::test_trap_trace
llvm+loongarch64    traps::test_trap_trace
singlepass+aarch64+macos traps::test_trap_stack_overflow # Need to investigate
singlepass+aarch64+macos traps::trap_display_pretty
llvm       traps::trap_display_pretty
windows    trap_display_pretty
windows    traps::test_trap_trace
cranelift+aarch64+macos    traps::trap_display_pretty
singlepass+aarch64+macos traps::trap_display_multi_module
llvm       traps::trap_display_multi_module
cranelift+aarch64+macos    traps::trap_display_multi_module
windows+singlepass   traps::trap_display_multi_module
singlepass traps::call_signature_mismatch   # Need to investigate, get foo (a[0]:0x33) instead of 0x30 for inderect call
llvm       traps::call_signature_mismatch
macos+aarch64    traps::call_signature_mismatch
singlepass+aarch64+macos traps::start_trap_pretty
llvm       traps::start_trap_pretty
cranelift+aarch64+macos    traps::start_trap_pretty

# LLVM currently doesn't implement stack probing on AArch64, RISC-V.
# https://github.com/wasmerio/wasmer/issues/2808
llvm+aarch64      spec::skip_stack_guard_page
llvm+riscv64      spec::skip_stack_guard_page
llvm+loongarch64  spec::skip_stack_guard_page
# Codegen("trampoline generation produced relocations")
llvm+windows      issues::huge_number_of_arguments_fn

# riscv support is still early, function call ABI needs some work
llvm+riscv64      static_function::llvm::universal
llvm+riscv64      static_function_with_env::llvm::universal
llvm+riscv64      static_function_with_results::llvm::universal
llvm+riscv64      spec::f32::llvm::universal
llvm+riscv64      spec::f64::llvm::universal
llvm+riscv64      spec::float_misc::llvm::universal
llvm+riscv64      spec::memory_copy::llvm::universal
llvm+riscv64      spec::memory_init::llvm::universal
llvm+riscv64      spec::memory_trap::llvm::universal
llvm+riscv64      spec::multi_value::binary::llvm::universal
llvm+riscv64      spec::multi_value::block::llvm::universal
llvm+riscv64      spec::simd::simd_align::llvm::universal
llvm+riscv64      spec::simd::simd_f32x4_rounding::llvm::universal
llvm+riscv64      spec::simd::simd_f64x2_rounding::llvm::universal
llvm+riscv64      wasmer::nan_canonicalization::llvm::universal

#6032
llvm+riscv64      wasmer::stack_overflow_sret::llvm

# riscv support on Cranelift is also very young
cranelift+riscv64 spec::align::cranelift
cranelift+riscv64 spec::memory_copy::cranelift
cranelift+riscv64 spec::memory_trap::cranelift
cranelift+riscv64 spec::r#if::cranelift

# no SIMD on riscv, Cranelift will not handle them
cranelift+riscv64 spec::simd
cranelift+riscv64 relaxed
# 6078
cranelift+riscv64 wasmer::simd_generated_ext_ops
cranelift+riscv64 wasmer::simd

# loongarch64 support is still early, function call ABI needs some work
llvm+loongarch64  static_function::llvm::universal
llvm+loongarch64  static_function_with_env::llvm::universal
llvm+loongarch64  static_function_with_results::llvm::universal
llvm+loongarch64  spec::f32::llvm::universal
llvm+loongarch64  spec::f64::llvm::universal
llvm+loongarch64  spec::float_misc::llvm::universal
llvm+loongarch64  spec::memory_copy::llvm::universal
llvm+loongarch64  spec::memory_init::llvm::universal
llvm+loongarch64  spec::memory_trap::llvm::universal
llvm+loongarch64  spec::multi_value::binary::llvm::universal
llvm+loongarch64  spec::multi_value::block::llvm::universal
llvm+loongarch64  spec::simd::simd_align::llvm::universal
llvm+loongarch64  spec::simd::simd_f32x4_rounding::llvm::universal
llvm+loongarch64  spec::simd::simd_f64x2_rounding::llvm::universal
llvm+loongarch64  wasmer::nan_canonicalization::llvm::universal
llvm+loongarch64  wasmer::stack_overflow_sret::llvm::universal

# #6017 - a crash in the LLVM compiler
llvm+loongarch64  spec::simd::simd_f32x4::llvm
llvm+loongarch64  spec::simd::simd_f64x2::llvm
llvm+loongarch64  spec::simd::simd_load::llvm
llvm+loongarch64  spec::simd::simd_splat::llvm
llvm+loongarch64  spec::simd_f32x4::llvm
llvm+loongarch64  spec::simd_f64x2::llvm
llvm+loongarch64  spec::simd_load::llvm
llvm+loongarch64  spec::simd_splat::llvm


# Windows doesn't overcommit and fails to allocate 4GB of memory
windows wasmer::max_size_of_memory

# Some AARCH64 CPU have issue with segfault writin 64bits on border page, where the 1 32bits might be written.
aarch64+linux spec::align
aarch64+linux spec::memory_trap

spec::instance

# TODO: #5816
cranelift+riscv64 spec::skip_stack_guard_page

# Frontends

## WASI

### These tests don't pass due to race conditions in the new way we run tests.
### It's not built to be run in parallel with itself, so we disable it for now.

wasitests::snapshot1::host_fs::writing
wasitests::unstable::host_fs::writing
wasitests::snapshot1::mem_fs::writing
wasitests::unstable::mem_fs::writing

### due to hard-coded direct calls into WASI for wasi unstable

wasitests::snapshot1::host_fs::fd_read
wasitests::snapshot1::host_fs::poll_oneoff
wasitests::snapshot1::host_fs::fd_pread
wasitests::snapshot1::host_fs::fd_close
wasitests::snapshot1::host_fs::fd_allocate
wasitests::snapshot1::host_fs::close_preopen_fd
wasitests::snapshot1::host_fs::envvar
wasitests::snapshot1::mem_fs::fd_read
wasitests::snapshot1::mem_fs::poll_oneoff
wasitests::snapshot1::mem_fs::fd_pread
wasitests::snapshot1::mem_fs::fd_close
wasitests::snapshot1::mem_fs::fd_allocate
wasitests::snapshot1::mem_fs::close_preopen_fd
wasitests::snapshot1::mem_fs::envvar

### TODO: resolve the disabled tests below. These are newly disabled tests from the migration:

### due to git clone not preserving symlinks:
wasitests::snapshot1::host_fs::readlink
wasitests::unstable::host_fs::readlink
wasitests::snapshot1::mem_fs::readlink
wasitests::unstable::mem_fs::readlink

### failing due to `remove_dir_all`. this test is also bad for parallelism
wasitests::snapshot1::host_fs::create_dir
wasitests::unstable::host_fs::create_dir
wasitests::snapshot1::mem_fs::create_dir
wasitests::unstable::mem_fs::create_dir

### failing because it closes `stdout` which breaks our testing system
wasitests::unstable::host_fs::fd_close
wasitests::unstable::mem_fs::fd_close

### failing because we're operating on stdout which is now overridden.
### TODO: check WasiFile implementation
### Alterative: split test into 2 parts, one printing to stderr, the other printing to stdout to test the real versions
wasitests::unstable::host_fs::poll_oneoff
wasitests::unstable::mem_fs::poll_oneoff

### randomly failed, mainly on windows but also on macos, due to a race condition when concurently testing multiple compiler / engines
wasitests::snapshot1::host_fs::fd_rename_path

# This tests are disabled for now
wasitests::unstable::host_fs::unix_open_special_files
wasitests::snapshot1::host_fs::unix_open_special_files
wasitests::unstable::mem_fs::unix_open_special_files
wasitests::snapshot1::mem_fs::unix_open_special_files

# These tests are all tests that are disabled for unstable + snapshot1,
# so they are also disabled for nightly
wasitests::nightly_2022_10_18::host_fs::close_preopen_fd
wasitests::nightly_2022_10_18::host_fs::create_dir
wasitests::nightly_2022_10_18::host_fs::envvar
wasitests::nightly_2022_10_18::host_fs::fd_allocate
wasitests::nightly_2022_10_18::host_fs::fd_close
wasitests::nightly_2022_10_18::host_fs::fd_pread
wasitests::nightly_2022_10_18::host_fs::fd_read
wasitests::nightly_2022_10_18::host_fs::fd_rename_path
wasitests::nightly_2022_10_18::host_fs::poll_oneoff
wasitests::nightly_2022_10_18::host_fs::readlink
wasitests::nightly_2022_10_18::host_fs::unix_open_special_files
wasitests::nightly_2022_10_18::host_fs::writing

wasitests::nightly_2022_10_18::mem_fs::close_preopen_fd
wasitests::nightly_2022_10_18::mem_fs::create_dir
wasitests::nightly_2022_10_18::mem_fs::envvar
wasitests::nightly_2022_10_18::mem_fs::fd_allocate
wasitests::nightly_2022_10_18::mem_fs::fd_close
wasitests::nightly_2022_10_18::mem_fs::fd_pread
wasitests::nightly_2022_10_18::mem_fs::fd_read
wasitests::nightly_2022_10_18::mem_fs::poll_oneoff
wasitests::nightly_2022_10_18::mem_fs::readlink
wasitests::nightly_2022_10_18::mem_fs::unix_open_special_files
wasitests::nightly_2022_10_18::mem_fs::writing

wasitests::snapshot1::tmp_fs::close_preopen_fd
wasitests::snapshot1::tmp_fs::create_dir
wasitests::snapshot1::tmp_fs::envvar
wasitests::snapshot1::tmp_fs::fd_allocate
wasitests::snapshot1::tmp_fs::fd_close
wasitests::snapshot1::tmp_fs::fd_pread
wasitests::snapshot1::tmp_fs::fd_read
wasitests::snapshot1::tmp_fs::poll_oneoff
wasitests::snapshot1::tmp_fs::readlink
wasitests::snapshot1::tmp_fs::unix_open_special_files
wasitests::snapshot1::tmp_fs::writing
wasitests::unstable::tmp_fs::close_preopen_fd
wasitests::unstable::tmp_fs::create_dir
wasitests::unstable::tmp_fs::envvar
wasitests::unstable::tmp_fs::fd_allocate
wasitests::unstable::tmp_fs::fd_close
wasitests::unstable::tmp_fs::fd_pread
wasitests::unstable::tmp_fs::fd_read
wasitests::unstable::tmp_fs::poll_oneoff
wasitests::unstable::tmp_fs::readlink
wasitests::unstable::tmp_fs::unix_open_special_files
wasitests::unstable::tmp_fs::writing
wasitests::nightly_2022_10_18::tmp_fs::close_preopen_fd
wasitests::nightly_2022_10_18::tmp_fs::create_dir
wasitests::nightly_2022_10_18::tmp_fs::envvar
wasitests::nightly_2022_10_18::tmp_fs::fd_allocate
wasitests::nightly_2022_10_18::tmp_fs::fd_close
wasitests::nightly_2022_10_18::tmp_fs::fd_pread
wasitests::nightly_2022_10_18::tmp_fs::fd_read
wasitests::nightly_2022_10_18::tmp_fs::poll_oneoff
wasitests::nightly_2022_10_18::tmp_fs::readlink
wasitests::nightly_2022_10_18::tmp_fs::unix_open_special_files
wasitests::nightly_2022_10_18::tmp_fs::writing

wasitests::snapshot1::passthru_fs::close_preopen_fd
wasitests::snapshot1::passthru_fs::create_dir
wasitests::snapshot1::passthru_fs::envvar
wasitests::snapshot1::passthru_fs::fd_allocate
wasitests::snapshot1::passthru_fs::fd_close
wasitests::snapshot1::passthru_fs::fd_pread
wasitests::snapshot1::passthru_fs::fd_read
wasitests::snapshot1::passthru_fs::poll_oneoff
wasitests::snapshot1::passthru_fs::readlink
wasitests::snapshot1::passthru_fs::unix_open_special_files
wasitests::snapshot1::passthru_fs::writing
wasitests::unstable::passthru_fs::close_preopen_fd
wasitests::unstable::passthru_fs::create_dir
wasitests::unstable::passthru_fs::envvar
wasitests::unstable::passthru_fs::fd_allocate
wasitests::unstable::passthru_fs::fd_close
wasitests::unstable::passthru_fs::fd_pread
wasitests::unstable::passthru_fs::fd_read
wasitests::unstable::passthru_fs::poll_oneoff
wasitests::unstable::passthru_fs::readlink
wasitests::unstable::passthru_fs::unix_open_special_files
wasitests::unstable::passthru_fs::writing
wasitests::nightly_2022_10_18::passthru_fs::close_preopen_fd
wasitests::nightly_2022_10_18::passthru_fs::create_dir
wasitests::nightly_2022_10_18::passthru_fs::envvar
wasitests::nightly_2022_10_18::passthru_fs::fd_allocate
wasitests::nightly_2022_10_18::passthru_fs::fd_close
wasitests::nightly_2022_10_18::passthru_fs::fd_pread
wasitests::nightly_2022_10_18::passthru_fs::fd_read
wasitests::nightly_2022_10_18::passthru_fs::poll_oneoff
wasitests::nightly_2022_10_18::passthru_fs::readlink
wasitests::nightly_2022_10_18::passthru_fs::unix_open_special_files
wasitests::nightly_2022_10_18::passthru_fs::writing

wasitests::snapshot1::tmp_fs::close_preopen_fd
wasitests::snapshot1::tmp_fs::create_dir
wasitests::snapshot1::tmp_fs::envvar
wasitests::snapshot1::tmp_fs::fd_allocate
wasitests::snapshot1::tmp_fs::fd_close
wasitests::snapshot1::tmp_fs::fd_pread
wasitests::snapshot1::tmp_fs::fd_read
wasitests::snapshot1::tmp_fs::poll_oneoff
wasitests::snapshot1::tmp_fs::readlink
wasitests::snapshot1::tmp_fs::unix_open_special_files
wasitests::snapshot1::tmp_fs::writing
wasitests::unstable::tmp_fs::close_preopen_fd
wasitests::unstable::tmp_fs::create_dir
wasitests::unstable::tmp_fs::envvar
wasitests::unstable::tmp_fs::fd_allocate
wasitests::unstable::tmp_fs::fd_close
wasitests::unstable::tmp_fs::fd_pread
wasitests::unstable::tmp_fs::fd_read
wasitests::unstable::tmp_fs::poll_oneoff
wasitests::unstable::tmp_fs::readlink
wasitests::unstable::tmp_fs::unix_open_special_files
wasitests::unstable::tmp_fs::writing
wasitests::nightly_2022_10_18::tmp_fs::close_preopen_fd
wasitests::nightly_2022_10_18::tmp_fs::create_dir
wasitests::nightly_2022_10_18::tmp_fs::envvar
wasitests::nightly_2022_10_18::tmp_fs::fd_allocate
wasitests::nightly_2022_10_18::tmp_fs::fd_close
wasitests::nightly_2022_10_18::tmp_fs::fd_pread
wasitests::nightly_2022_10_18::tmp_fs::fd_read
wasitests::nightly_2022_10_18::tmp_fs::poll_oneoff
wasitests::nightly_2022_10_18::tmp_fs::readlink
wasitests::nightly_2022_10_18::tmp_fs::unix_open_special_files
wasitests::nightly_2022_10_18::tmp_fs::writing

wasitests::snapshot1::union_fs::close_preopen_fd
wasitests::snapshot1::union_fs::create_dir
wasitests::snapshot1::union_fs::envvar
wasitests::snapshot1::union_fs::fd_allocate
wasitests::snapshot1::union_fs::fd_close
wasitests::snapshot1::union_fs::fd_pread
wasitests::snapshot1::union_fs::fd_read
wasitests::snapshot1::union_fs::poll_oneoff
wasitests::snapshot1::union_fs::readlink
wasitests::snapshot1::union_fs::unix_open_special_files
wasitests::snapshot1::union_fs::writing
wasitests::unstable::union_fs::close_preopen_fd
wasitests::unstable::union_fs::create_dir
wasitests::unstable::union_fs::envvar
wasitests::unstable::union_fs::fd_allocate
wasitests::unstable::union_fs::fd_close
wasitests::unstable::union_fs::fd_pread
wasitests::unstable::union_fs::fd_read
wasitests::unstable::union_fs::poll_oneoff
wasitests::unstable::union_fs::readlink
wasitests::unstable::union_fs::unix_open_special_files
wasitests::unstable::union_fs::writing
wasitests::nightly_2022_10_18::union_fs::close_preopen_fd
wasitests::nightly_2022_10_18::union_fs::create_dir
wasitests::nightly_2022_10_18::union_fs::envvar
wasitests::nightly_2022_10_18::union_fs::fd_allocate
wasitests::nightly_2022_10_18::union_fs::fd_close
wasitests::nightly_2022_10_18::union_fs::fd_pread
wasitests::nightly_2022_10_18::union_fs::fd_read
wasitests::nightly_2022_10_18::union_fs::poll_oneoff
wasitests::nightly_2022_10_18::union_fs::readlink
wasitests::nightly_2022_10_18::union_fs::unix_open_special_files
wasitests::nightly_2022_10_18::union_fs::writing

wasitests::snapshot1::root_fs::close_preopen_fd
wasitests::snapshot1::root_fs::create_dir
wasitests::snapshot1::root_fs::envvar
wasitests::snapshot1::root_fs::fd_allocate
wasitests::snapshot1::root_fs::fd_close
wasitests::snapshot1::root_fs::fd_pread
wasitests::snapshot1::root_fs::fd_read
wasitests::snapshot1::root_fs::poll_oneoff
wasitests::snapshot1::root_fs::readlink
wasitests::snapshot1::root_fs::unix_open_special_files
wasitests::snapshot1::root_fs::writing
wasitests::unstable::root_fs::close_preopen_fd
wasitests::unstable::root_fs::create_dir
wasitests::unstable::root_fs::envvar
wasitests::unstable::root_fs::fd_allocate
wasitests::unstable::root_fs::fd_close
wasitests::unstable::root_fs::fd_pread
wasitests::unstable::root_fs::fd_read
wasitests::unstable::root_fs::poll_oneoff
wasitests::unstable::root_fs::readlink
wasitests::unstable::root_fs::unix_open_special_files
wasitests::unstable::root_fs::writing
wasitests::nightly_2022_10_18::root_fs::close_preopen_fd
wasitests::nightly_2022_10_18::root_fs::create_dir
wasitests::nightly_2022_10_18::root_fs::envvar
wasitests::nightly_2022_10_18::root_fs::fd_allocate
wasitests::nightly_2022_10_18::root_fs::fd_close
wasitests::nightly_2022_10_18::root_fs::fd_pread
wasitests::nightly_2022_10_18::root_fs::fd_read
wasitests::nightly_2022_10_18::root_fs::poll_oneoff
wasitests::nightly_2022_10_18::root_fs::readlink
wasitests::nightly_2022_10_18::root_fs::unix_open_special_files
wasitests::nightly_2022_10_18::root_fs::writing

# These tests are failing in CI for some reason, but didn't fail on older compiler versions
wasitests::nightly_2022_10_18::passthru_fs::path_symlink
wasitests::nightly_2022_10_18::root_fs::path_symlink
wasitests::nightly_2022_10_18::tmp_fs::path_symlink
wasitests::nightly_2022_10_18::union_fs::path_symlink
wasitests::nightly_2022_10_18::mem_fs::path_symlink
wasitests::nightly_2022_10_18::host_fs::path_symlink

wasitests::nightly_2022_10_18::mem_fs::fd_append
wasitests::nightly_2022_10_18::host_fs::fd_append
wasitests::nightly_2022_10_18::passthru_fs::fd_append
wasitests::nightly_2022_10_18::root_fs::fd_append
wasitests::nightly_2022_10_18::tmp_fs::fd_append
wasitests::nightly_2022_10_18::union_fs::fd_append

# FIXME: Those tests seems to fails on CI, but can't rproduce the issue on local Windows
windows     wasitests::snapshot1::host_fs::path_rename
windows     wasitests::nightly_2022_10_18::host_fs::path_rename

# FIXME - re-enable once the path resolution failures in WasiFs have been worked out
path_rename

# #5943 - multi-value tests
singlepass        multi_value_imports
cranelift         multi_value_imports
llvm+windows      multi_value_imports
llvm+loongarch64  multi_value_imports
llvm+riscv64      multi_value_imports
llvm+windows      static_function_with_results
