test: drop transport runners (ssh/sshwin/wsl) and the Shell-quoting enum
All checks were successful
CI / build-test-release (pull_request) Successful in 9m56s
All checks were successful
CI / build-test-release (pull_request) Successful in 9m56s
With test.toml + ForTarget covering the cross-arch + Windows-on-Linux
cases, the env-var-driven transport runners are dead weight. This commit
removes them and the retired tests that exercised the env-var plumbing:
- TestRunner::Ssh / SshWin / Wsl factories and their copy/exec/cleanup
template machinery.
- TestRunner::Shell enum (Host/Sh/Cmd) and the ShellQuoteSh helper —
only Host shell quoting is needed once the remote shells are gone.
- TestRunner::copy / cleanup / remoteDir / argsShell fields.
- WindowsPathToWsl and the {remote_bundle}/{bin_win}/{bundle_wsl}
placeholder substitution in RunSingleTest's transport branch.
- ParseRunnerSpec narrowed from {local, cmd, ssh, sshwin, wsl} to
{local, cmd} — the override hatch is preserved, just simpler.
- tests/SshRunner, tests/WindowsViaSsh, tests/QemuUser: these tested
the CRAFTER_BUILD_RUNNER_<target> → runner plumbing that has been
replaced by ForTarget. The runner derivation is exercised every
time CrossArchAarch64 / Wasi / WindowsViaWine runs.
- tests/UnitLib: ssh/sshwin spec assertions become "throws on bogus
spec" assertions.
Refs issue #8.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
406a406420
commit
8de93aaf06
15 changed files with 35 additions and 516 deletions
|
|
@ -53,35 +53,34 @@ export namespace Crafter {
|
|||
struct Test;
|
||||
|
||||
struct TestRunner {
|
||||
// Quoting style for {args} when this runner is used. Args reach
|
||||
// whichever shell the runner ultimately delivers them to: Host for
|
||||
// Local + Cmd-prefix (host shell parses), Sh for Ssh (remote bash),
|
||||
// Cmd for SshWin (remote cmd.exe).
|
||||
enum class Shell { Host, Sh, Cmd };
|
||||
|
||||
std::string copy;
|
||||
// Command template the harness executes to run the test binary.
|
||||
// Local runners leave this empty; prefix runners (Cmd, Wine) set it to
|
||||
// a template like "wine {bin} {args}" or "qemu-aarch64 {bin} {args}".
|
||||
std::string exec;
|
||||
std::string cleanup;
|
||||
std::string remoteDir;
|
||||
// Display name; also the cache key for the availability probe.
|
||||
std::string name;
|
||||
// Runs once per RunTests invocation (cached by `name`). Exit 0 = runner
|
||||
// is available; non-zero = skip every Test using this runner with a
|
||||
// "runner unavailable" message. Empty = always available (e.g., Local).
|
||||
std::string probe;
|
||||
Shell argsShell = Shell::Host;
|
||||
|
||||
bool IsLocal() const { return exec.empty(); }
|
||||
|
||||
static CRAFTER_API TestRunner Local();
|
||||
static CRAFTER_API TestRunner Ssh(std::string host, std::string remoteDir = "/tmp/crafter-tests");
|
||||
static CRAFTER_API TestRunner SshWin(std::string host, std::string remoteDir = "C:/temp/crafter-tests");
|
||||
static CRAFTER_API TestRunner Wsl(std::string remoteDir = "/tmp/crafter-tests-wsl");
|
||||
// Prefix runner: wraps the local binary in `<command> {bin} {args}`.
|
||||
// Used for qemu-user, wasmtime, and similar single-binary wrappers.
|
||||
static CRAFTER_API TestRunner Cmd(std::string command);
|
||||
// Run a Windows .exe through Wine. Probes `wine` on PATH; on a Windows
|
||||
// host the wine wrapper is pointless, so callers should route to Local
|
||||
// before reaching here.
|
||||
static CRAFTER_API TestRunner Wine();
|
||||
// Parse a `<kind>[:<arg>]` spec used by CRAFTER_BUILD_RUNNER_<target>
|
||||
// and --runner=. Supported: "local", "cmd:<binary>". Returns nullopt
|
||||
// for an empty string; throws on a non-empty unrecognized spec.
|
||||
static CRAFTER_API std::optional<TestRunner> FromSpec(std::string_view spec);
|
||||
// Honor CRAFTER_BUILD_RUNNER_<target> (power-user override). Triple
|
||||
// dashes/dots become underscores so they're valid in env-var names.
|
||||
// Returns `fallback` when the env var is unset.
|
||||
static CRAFTER_API TestRunner FromEnv(std::string_view target, TestRunner fallback = Local());
|
||||
// Derive a runner from a Configuration's target triple + sysroot.
|
||||
// Returns Local() when target equals the host, Wine() for Windows
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue