From 6d35a93a96fada214ebaf2efd87ad941d9a8790b Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Thu, 8 Jul 2021 20:40:16 +0100 Subject: [PATCH] jstest: Provide for wrapping Signed-off-by: Ian Jackson --- jstest/jst-lower.rs | 11 +++++++++++ jstest/jstest.rs | 2 ++ jstest/lower.nodejs | 2 ++ jstest/run1 | 9 ++++++++- 4 files changed, 23 insertions(+), 1 deletion(-) diff --git a/jstest/jst-lower.rs b/jstest/jst-lower.rs index fe60acc1..0a688acf 100644 --- a/jstest/jst-lower.rs +++ b/jstest/jst-lower.rs @@ -4,6 +4,17 @@ use otter_nodejs_tests::*; +#[derive(StructOpt)] +struct Opts { + pub nodejs: String, + pub script: String, +} + #[throws(AE)] fn main() { + let opts = Opts::from_args(); + let mut cmd = Command::new(opts.nodejs); + cmd.arg(opts.script); + let status = cmd.status()?; + assert!(status.success(), "{}", status); } diff --git a/jstest/jstest.rs b/jstest/jstest.rs index 52b070ed..d1493843 100644 --- a/jstest/jstest.rs +++ b/jstest/jstest.rs @@ -3,3 +3,5 @@ // There is NO WARRANTY. pub use otter::prelude::*; + +pub use structopt::StructOpt; diff --git a/jstest/lower.nodejs b/jstest/lower.nodejs index 55ef29a3..f941330a 100644 --- a/jstest/lower.nodejs +++ b/jstest/lower.nodejs @@ -4,6 +4,8 @@ // SPDX-License-Identifier: AGPL-3.0-or-later // There is NO WARRANTY. +// @@wrap jst-lower + const fs = require('fs'); let wasm_bindgen = require('otter_wasm.js'); diff --git a/jstest/run1 b/jstest/run1 index 3676e967..c30fb92b 100755 --- a/jstest/run1 +++ b/jstest/run1 @@ -29,6 +29,13 @@ if grep '^\/\/ @expect' $1; then else rm -f expect fi +wrap=$(sed -n 's/^\/\/ @@wrap //p' $1) + +case "$wrap" in +'') ;; +*/*) fail "uh $wrap" ;; +*) wrap=../../target/debug/$wrap +esac exec 3>run.js sed >&3 &3 $t.nodejs exec 3>&- set +e -nodejs run.js >output +$wrap nodejs run.js >output rc=$? set -e -- 2.30.2