# Copyright (C) 2016 Apple Inc. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1.  Redistributions of source code must retain the above copyright
#     notice, this list of conditions and the following disclaimer. 
# 2.  Redistributions in binary form must reproduce the above copyright
#     notice, this list of conditions and the following disclaimer in the
#     documentation and/or other materials provided with the distribution. 
#
# THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

- path: wasm/self-test/
  cmd: runWebAssembly
- path: wasm/js-api/
  cmd: runWebAssembly
- path: wasm/function-tests
  cmd: runWebAssembly
- path: wasm/fuzz
  cmd: runWebAssembly

- path: wasm/spec-tests/address.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/binary.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/block.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/br.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/br_if.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/br_table.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/break-drop.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/call.wast.js
  cmd: runWebAssemblySpecTest :skip

- path: wasm/spec-tests/call_indirect.wast.js
  cmd: runWebAssemblySpecTest :skip

- path: wasm/spec-tests/comments.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/conversions.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/custom_section.wast.js
  cmd: runWebAssemblySpecTest :skip

- path: wasm/spec-tests/endianness.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/exports.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/f32.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/f32_cmp.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/f64.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/f64_cmp.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/fac.wast.js
  cmd: runWebAssemblySpecTest :skip

- path: wasm/spec-tests/float_exprs.wast.js
  cmd: runWebAssemblySpecTest :skip

- path: wasm/spec-tests/float_literals.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/float_memory.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/float_misc.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/forward.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/func.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/func_ptrs.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/get_local.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/globals.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/i32.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/i64.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/imports.wast.js
  cmd: runWebAssemblySpecTest :skip

- path: wasm/spec-tests/int_exprs.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/int_literals.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/left-to-right.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/linking.wast.js
  cmd: runWebAssemblySpecTest :skip

- path: wasm/spec-tests/loop.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/memory.wast.js
  cmd: runWebAssemblySpecTest :skip

- path: wasm/spec-tests/memory_redundancy.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/memory_trap.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/names.wast.js
  cmd: runWebAssemblySpecTest :skip

- path: wasm/spec-tests/nop.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/resizing.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/return.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/select.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/set_local.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/skip-stack-guard-page.wast.js
  cmd: runWebAssemblySpecTest :skip

- path: wasm/spec-tests/stack.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/start.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/store_retval.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/switch.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/tee_local.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/traps.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/typecheck.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/unreachable.wast.js
  cmd: runWebAssemblySpecTest :normal

- path: wasm/spec-tests/unwind.wast.js
  cmd: runWebAssemblySpecTest :normal

