#!/usr/bin/env fish set d (realpath (status dirname)) cd $d/bytecode cargo build; or return cd $d if test (count $argv) -gt 0 set files $d/tests/$argv* else set files $d/tests/* end printf %s\n $files | parallel --keep-order --quote fish -c ' bytecode/target/debug/bytecode (sml main.sml -o /dev/stderr $argv[1] >/dev/null 2>| psub) set got $status if test $got -eq 42 echo (basename -s.sml $argv[1]): PASS else echo (basename -s.sml $argv[1]): FAIL "(status $got)" end '