@@ -449,3 +449,40 @@ jobs:
449449 "ok: a program over a C++ shared library runs on one C++ runtime" \
450450 "ok: a stated self-contained program over a coupled C++ shared library is refused" \
451451 "PASS: 700 a program over a C++ shared library has one C++ runtime"
452+
453+ # The compile database (#699 report, design 2026-09-26 §3): the scripts
454+ # whose rows need llvm declare `# requires: llvm`, which no shard has, so
455+ # they run here and each is held to the lines it prints only when the
456+ # property it names was checked.
457+ - name : " Compile database e2e that needs llvm (783, 784, 785, 786)"
458+ run : |
459+ set -o pipefail
460+ export PATH="$HOME/.xlings/subos/current/bin:$PATH"
461+ export MCPP
462+ run_and_assert() { # $1 = script; the remaining arguments are lines it must print
463+ local script="$1"; shift
464+ local log="$RUNNER_TEMP/$(basename "$script").log"
465+ bash "$script" 2>&1 | tee "$log"
466+ for line in "$@"; do
467+ grep -qxF "$line" "$log" || { echo "::error::$script did not print: $line"; exit 1; }
468+ done
469+ }
470+ run_and_assert tests/e2e/783_cdb_switches_whole_with_the_configuration.sh \
471+ "ok: mcpp test then mcpp build keep the test entry in one configuration" \
472+ "ok: switching toolchain switches the whole root file" \
473+ "ok: switching back restores that configuration's entries, test units included" \
474+ "PASS: 783 one compile database per configuration"
475+ run_and_assert tests/e2e/784_cdb_replays_from_its_directory.sh \
476+ "ok: gcc row replays every entry from its directory, no gcm.cache/ in the project root" \
477+ "ok: llvm row replays every entry from its directory" \
478+ "PASS: 784 the compile database replays from its own directory"
479+ run_and_assert tests/e2e/785_cdb_interface_flag_module_extensions.sh \
480+ "ok: the interface entry carries -x c++-module immediately before -c, and replays" \
481+ "ok: the non-module unit carries no language flag" \
482+ "PASS: 785 the compile database states a module interface's language explicitly"
483+ run_and_assert tests/e2e/786_std_unit_in_the_database_and_build_id.sh \
484+ "ok: the std unit's directory is the shared std cache, not the project's output directory" \
485+ "ok: emit --spec compile-commands renders the same std entry as the build's database" \
486+ "ok: provides['std'] names the std-cache BMI" \
487+ "ok: build-id is present and stable across two runs" \
488+ "PASS: 786 the std unit in the database, emit/build agreement, provides and build-id"
0 commit comments