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
+39
View File
@@ -0,0 +1,39 @@
/* project.kdl - integration-fixture build file (plan todo 26).
*
* A small but REAL C project exercising the DSL the way a user would:
* - feature "pthread": a header check (pthread.h) AND a library check
* (pthread -> -lpthread), like the classic autoconf AC_CHECK_HEADER +
* AC_CHECK_LIB pair;
* - feature "math": an optional library check (m -> -lm). Not strictly
* required by every build (an option maps to --enable-math/--disable
* --math), but present so the generated Makefile accumulates -lm
* when it resolves;
* - target "default": the real source list of the fixture (descriptive
* in v1 - the generated configure substitutes @VAR@ into Makefile.in,
* it does not generate Makefiles);
* - option "debug": an option node, proving the --enable-debug /
* --disable-debug surface shows up in the generated --help.
*
* DSL grammar (src/kdl/schema.h): `project` first, then targets/features/
* options; feature children are checks (header/library/... from the 8
* registry kinds). */
project "hellothreads" version "1.0.0"
feature "pthread" {
header "pthread.h"
library "pthread"
}
feature "math" {
library "m"
}
target "default" {
src "main.c"
src "demo.c"
feature "pthread"
feature "math"
}
option "debug" default=#false