Files
Patrick szymkowiak d22759b8c5 feat(benchmark): add multipass VM integration test suite
Bun/TypeScript orchestrator that creates an Ubuntu 24.04 VM via multipass,
installs all dev tools (Rust, Go, Node, Python, .NET, Terraform, etc.),
builds RTK, and runs 103 tests across 11 phases:

- Cargo quality (fmt, clippy, test)
- 47 Rust built-in commands (git, ls, grep, cargo, pytest, go, tsc...)
- 21 TOML filter commands (df, ps, shellcheck, hadolint, helm...)
- Hook rewrite engine (17 rewrite assertions)
- Exit code preservation
- Token savings verification (avg 81%)
- Pipe compatibility
- Edge cases (unicode, ANSI, empty output)
- Performance (memory < 20MB)
- Concurrency (10 parallel executions)

Usage:
  bun run scripts/benchmark/run.ts           # Full suite (~3 min)
  bun run scripts/benchmark/run.ts --quick   # Skip perf/concurrency
  bun run scripts/benchmark/run.ts --phase 3 # Single phase
  bun run scripts/benchmark/cleanup.ts       # Delete VM
  bun run scripts/benchmark/rebuild.ts       # Fast rebuild

Prerequisites: brew install multipass, bun
Signed-off-by: Patrick szymkowiak <patrick.szymkowiak@innovtech.eu>
2026-04-12 10:36:37 +02:00

18 lines
534 B
TypeScript

#!/usr/bin/env bun
/**
* Fast rebuild: reuse existing VM, just transfer source and recompile.
* Usage: bun run scripts/benchmark/rebuild.ts
*/
import { vmEnsureReady, vmBuildRtk } from "./lib/vm";
const PROJECT_ROOT = new URL("../../", import.meta.url).pathname.replace(/\/$/, "");
await vmEnsureReady();
const info = await vmBuildRtk(PROJECT_ROOT);
console.log(`\nRebuild complete:`);
console.log(` Version: ${info.version}`);
console.log(` Binary: ${info.binarySize} bytes`);
console.log(` Time: ${info.buildTime}s`);