blade-test
April 27, 2026 · View on GitHub
End-to-end regression workspace for [blade-build] (https://github.com/blade-build/blade-build), exercising each supported toolchain (C/C++, proto, thrift, Java, Python, Go, ...) from a real user's perspective.
This repo is organized as a sibling checkout of blade-build:
parent/
├── blade-build/ (the build tool)
└── blade-test/ (this repo)
Override the discovery path with BLADE_BUILD_DIR=/path/to/blade-build
if you keep them elsewhere.
Host requirements
See the comments at the top of blade.sh for the full
list. The essentials:
-
python3 >= 3.10onPATH. If your defaultpython3is older, setBLADE_PYTHON_INTERPRETERto a newer one in your shell:export BLADE_PYTHON_INTERPRETER=/opt/homebrew/bin/python3.12(The blade-build launcher honors this env var since the v3 bugfix.)
-
A C/C++ toolchain (clang on macOS, gcc on Linux) plus
ninja. -
googletestinstalled under the brew/system prefix referenced inBLADE_ROOT(brew install googleteston macOS;apt install libgtest-devon Ubuntu, then build and install the static archives). -
For individual suites:
protoc,thrift,swig,mvn,scalac,javac,goas theirBUILDfiles require. Only install what a suite you actually want to run needs.
Running a suite
./blade.sh test //suites/cc_basic/...
Expected tail:
[ PASSED ] 2 tests.
Blade(notice): All 1 tests passed!
Layout
-
BLADE_ROOT— toolchain config for the whole workspace (gtest, protobuf, thrift, JUnit wiring). -
blade.sh— thin wrapper that execs the sibling blade-build launcher. -
suites/— one directory per toolchain/feature area. Current:suites/cc_basic/— minimal C/C++ + gtest smoke.
More suites (proto/thrift/java/py/go/...) will land in follow-up PRs.
-
thirdparty/— vendored third-party artifacts (currently JUnit jars for the Java suites).