commit e646fd7e94b824476ece4211611853f703065d08
parent 608451d52b38bd29df36fd741ed739e9dcda09bd
Author: triesap <tyson@radroots.org>
Date: Fri, 5 Jun 2026 19:47:28 -0700
tooling: require full coverage validation
Diffstat:
3 files changed, 33 insertions(+), 1 deletion(-)
diff --git a/.config/nextest.toml b/.config/nextest.toml
@@ -0,0 +1,6 @@
+[profile.default]
+fail-fast = false
+failure-output = "immediate"
+final-status-level = "slow"
+retries = 0
+status-level = "fail"
diff --git a/crates/tangle/tests/version.rs b/crates/tangle/tests/version.rs
@@ -13,3 +13,29 @@ fn tangle_version_command_reports_package_version() {
assert_eq!(String::from_utf8_lossy(&output.stdout), "tangle 0.1.0\n");
assert!(output.stderr.is_empty());
}
+
+#[test]
+fn tangle_without_args_exits_successfully() {
+ let output = Command::new(env!("CARGO_BIN_EXE_tangle"))
+ .output()
+ .expect("run tangle without args");
+
+ assert!(output.status.success());
+ assert!(output.stdout.is_empty());
+ assert!(output.stderr.is_empty());
+}
+
+#[test]
+fn tangle_unknown_arg_reports_usage_error() {
+ let output = Command::new(env!("CARGO_BIN_EXE_tangle"))
+ .arg("--unknown")
+ .output()
+ .expect("run tangle unknown arg");
+
+ assert_eq!(output.status.code(), Some(2));
+ assert!(output.stdout.is_empty());
+ assert_eq!(
+ String::from_utf8_lossy(&output.stderr),
+ "usage: tangle [--version]\n"
+ );
+}
diff --git a/scripts/coverage.sh b/scripts/coverage.sh
@@ -7,4 +7,4 @@ if ! cargo llvm-cov --version >/dev/null 2>&1; then
fi
cargo llvm-cov clean --workspace
-cargo llvm-cov --workspace --all-targets
+cargo llvm-cov --workspace --all-targets --fail-under-lines 100