# Standard 'directives.txt' prologues for jit-tests
harness_directive = "|jit-test| skip-if: true"
directive = "|jit-test| test-also=--wasm-compiler=optimizing; test-also=--wasm-compiler=baseline; test-also=--setpref=wasm_test_serialization=true; test-also=--test-wasm-await-tier2; test-also=--disable-wasm-huge-memory; skip-variant-if: --disable-wasm-huge-memory, !wasmHugeMemorySupported(); local-include:harness/harness.js"

# Failing tests across all testsuites
excluded_tests = [
  # false-positive windows-specific failures
  "align.wast",
  # bulk-memory-operations/issues/133 (data.wast:161)
  "data.wast",
  # memory limits can be encoded with more bytes now
  "binary.wast",
  "binary-leb128.wast",
  # testing that multiple tables fail (imports.wast:309)
  "imports.wast",
  # bulk-memory-operations/issues/133 (linking.wast:206)
  "linking.wast",
  # bulk-memory-operations/issues/133 (elem.wast:142)
  "elem.wast",
  # test harness doesn't acquire global values correctly
  "exports.wast",
  # false-positive windows-specific failure
  "memory_trap.wast",
  # false-positive error on invalid UTF-8 custom section name (utf8-custom-section-id.wast:6)
  "utf8-custom-section-id.wast",
  # invalid table maximum length for web embeddings
  "table.wast",
  # fails after a bottom-type has been added to validation
  "unreached-invalid.wast",
  # argument is not wasm value
  "^select.wast",
]

[[repos]]
name = "spec"
url = "https://github.com/WebAssembly/spec"
excluded_tests = []
directive = "; test-also=--no-avx; skip-variant-if: --no-avx, !getBuildConfiguration('x86') && !getBuildConfiguration('x64') || getBuildConfiguration('simulator')"

[[repos]]
name = "exception-handling"
url = "https://github.com/WebAssembly/exception-handling"
branch = "main"
parent = "spec"
# Skip in jit-test when it's not enabled
directive = "; --setpref=wasm_exnref=true; skip-if: !wasmExnRefEnabled()"
excluded_tests = [
  # harness doesn't support exnref, because JS-API globals can't use it
  "ref_null.wast.js"
]

[[repos]]
name = "memory64"
url = "https://github.com/mozilla-spidermonkey/memory64"
branch = "test-cases"
directive = "; --setpref=wasm_memory64=true; skip-if: !wasmMemory64Enabled()"
excluded_tests = []

[[repos]]
name = "function-references"
url = "https://github.com/WebAssembly/function-references"
branch = "main"
parent = "spec"
directive = "; --setpref=wasm_gc=true; skip-if: !wasmGcEnabled()"
excluded_tests = [
  # duplicate tail calls tests
  "return_call.wast",
  "return_call_indirect.wast",
  # table function elem subtyping
  "ref_is_null.wast",
  # cannot expose indexed reference type
  "ref_null.wast",
  # parameter subtyping
  "type-equivalence.wast",
  # NYI WasmValType.h:259
  "table-sub.wast",
  # unrelated
  "tokens.wast",
  # irrelevant
  "simd_lane.wast",
  # globals are of different type
  "local_init.wast",
]

[[repos]]
name = "relaxed-simd"
url = "https://github.com/WebAssembly/relaxed-simd"
branch = "main"
parent = "spec"
directive = "; --setpref=wasm_relaxed_simd=true; skip-if: !wasmRelaxedSimdEnabled()"
excluded_tests = []

[[repos]]
name = "extended-const"
url = "https://github.com/WebAssembly/extended-const"
branch = "main"
parent = "spec"
directive = "; --setpref=wasm_gc=false"
excluded_tests = []

[[repos]]
name = "tail-call"
url = "https://github.com/WebAssembly/tail-call"
branch = "main"
parent = "spec"
directive = "; --setpref=wasm_tail_calls=true; skip-if: !wasmTailCallsEnabled()"
excluded_tests = []

[[repos]]
name = "multi-memory"
url = "https://github.com/WebAssembly/multi-memory"
branch = "main"
parent = "spec"
directive = "; --setpref=wasm_multi_memory=true; skip-if: !wasmMultiMemoryEnabled()"
excluded_tests = [
  # Empty test fails parsing
  "memory_copy1.wast",
]

[[repos]]
name = "gc"
url = "https://github.com/WebAssembly/gc"
branch = "main"
parent = "function-references"
directive = "; --setpref=wasm_gc=true; skip-if: !wasmGcEnabled()"
excluded_tests = [
  # tail call tests that snuck in
  "return_call.wast",
  "return_call_indirect.wast",
]
