test: add end-to-end integration across dash/bash/zsh

This commit is contained in:
2026-08-29 01:10:28 -04:00
parent 22e22f2575
commit b94a540673
7 changed files with 573 additions and 0 deletions
@@ -0,0 +1,37 @@
/* project-fail.kdl - the FAILURE variant of project.kdl (plan todo 26).
*
* Same shape as project.kdl, but the pthread feature is replaced by a
* feature checking a header that does not exist on any system:
*
* feature "nope" { header "nope_missing_xyz.h" }
*
* The generated ./configure must handle the failed probe CLEANLY under
* every shell in the matrix: the failure is recorded (have_nope=no), the
* check is named in config.log (the compiler's diagnostic), config.h gets
* NO HAVE_NOPE define, and no shell reports a syntax error. A healthy
* second feature ("posix", unistd.h) proves configure continues after a
* failed check and the healthy feature still resolves.
*
* NOTE (deviation, tracked in .omo/notepads/stupidtools/issues.md): the
* v1 generator (todos 16/17, frozen to todo 26) follows autoconf
* semantics - a failed OPTIONAL check records have_<name>=no and
* configure still exits 0; it does not abort. The plan/todo text expected
* rc!=0 here. run.sh asserts the generator's REAL contract and exercises
* the genuinely-non-zero configure-error path via an unrecognized option.
*/
project "hellothreads-fail" version "1.0.0"
feature "nope" {
header "nope_missing_xyz.h"
}
feature "posix" {
header "unistd.h"
}
target "default" {
src "main.c"
feature "nope"
feature "posix"
}