...

Text file src/github.com/tetratelabs/wazero/.github/wasi_testsuite_adapter.py

Documentation: github.com/tetratelabs/wazero/.github

     1# adapter for wazero until/unless https://github.com/WebAssembly/wasi-testsuite/pull/55
     2
     3import argparse
     4import subprocess
     5import sys
     6import os
     7import shlex
     8
     9# shlex.split() splits according to shell quoting rules
    10WAZERO = shlex.split(os.getenv("TEST_RUNTIME_EXE", "wazero"))
    11
    12parser = argparse.ArgumentParser()
    13parser.add_argument("--version", action="store_true")
    14parser.add_argument("--test-file", action="store")
    15parser.add_argument("--arg", action="append", default=[])
    16parser.add_argument("--env", action="append", default=[])
    17parser.add_argument("--dir", action="append", default=[])
    18
    19args = parser.parse_args()
    20
    21if args.version:
    22    version = subprocess.run(
    23        WAZERO + ["version"], capture_output=True, text=True
    24    ).stdout.strip()
    25    if version == "dev":
    26        version = "0.0.0"
    27    print("wazero", version)
    28    sys.exit(0)
    29
    30TEST_FILE = args.test_file
    31TEST_DIR = os.path.dirname(TEST_FILE)
    32PROG_ARGS = []
    33if args.arg:
    34    PROG_ARGS = ["--"] + args.arg
    35ENV_ARGS = [f"-env={e}" for e in args.env]
    36cwd = os.getcwd()
    37DIR_ARGS = [f"-mount={cwd}/{dir}:{dir}" for dir in args.dir]
    38
    39PROG = (
    40    WAZERO
    41    + ["run", "-hostlogging=filesystem"]
    42    + ENV_ARGS
    43    + DIR_ARGS
    44    + [TEST_FILE]
    45    + PROG_ARGS
    46)
    47sys.exit(subprocess.run(PROG, cwd=TEST_DIR).returncode)

View as plain text