| #!/bin/bash |
| # Copyright 2026 The IREE Authors |
| # |
| # Licensed under the Apache License v2.0 with LLVM Exceptions. |
| # See https://llvm.org/LICENSE.txt for license information. |
| # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| |
| # Test runner for bundled WebAssembly binaries. Invoked by iree_wasm_cc_test |
| # targets via sh_test. The argument is the rootpath of the bundled .mjs. |
| |
| set -euo pipefail |
| |
| if [[ $# -lt 1 ]]; then |
| echo "usage: $0 <bundle.mjs> [args...]" >&2 |
| exit 1 |
| fi |
| |
| node_bin="${IREE_WASM_NODE:-}" |
| if [[ -z "${node_bin}" ]]; then |
| node_bin="$(command -v node || true)" |
| fi |
| if [[ -z "${node_bin}" ]]; then |
| node_bin="$(command -v nodejs || true)" |
| fi |
| if [[ -z "${node_bin}" ]]; then |
| echo "Unable to find node. Set IREE_WASM_NODE to a Node.js executable." >&2 |
| exit 1 |
| fi |
| |
| # Ubuntu snap installs expose /snap/bin/node as a launcher through /usr/bin/snap. |
| # The launcher exits inside Bazel's Linux sandbox before running the test, so |
| # bypass it when the real snap-packaged node binary is available. |
| node_realpath="$(readlink -f "${node_bin}" || true)" |
| if [[ "${node_realpath}" == "/usr/bin/snap" && |
| -x "/snap/node/current/bin/node" ]]; then |
| node_bin="/snap/node/current/bin/node" |
| fi |
| |
| exec "${node_bin}" "$@" |