Skip to content

Commit 1c625eb

Browse files
committed
ci: the llvm job asserts the compile-database e2e (783-786); the mingw-cross job runs 796
1 parent 9e8f283 commit 1c625eb

2 files changed

Lines changed: 49 additions & 0 deletions

File tree

‎.github/workflows/ci-linux-e2e.yml‎

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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"

‎.github/workflows/cross-build-test.yml‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,18 @@ jobs:
375375
# Named here for the reason the steps above are: the Linux shards skip
376376
# `# requires: mingw-cross wine`. Each property is held to the line the
377377
# script prints only when that property was checked.
378+
# The runtime_search_dir directive on PE (#701): `mcpp run` finds a DLL
379+
# through PATH and `mcpp pack` places it. The native leg is e2e 794 on
380+
# the Windows shards; this is its Linux-hosted counterpart.
381+
- name: "e2e: runtime_search_dir on PE under wine"
382+
run: |
383+
set -o pipefail
384+
export MCPP_VENDORED_XLINGS="$XLINGS_BIN"
385+
log="$RUNNER_TEMP/796.log"
386+
bash tests/e2e/796_runtime_search_dir_on_pe_under_wine.sh 2>&1 | tee "$log"
387+
grep -qxF "PASS: 796_runtime_search_dir_on_pe_under_wine" "$log" \
388+
|| { echo "::error::796 did not print its PASS line"; exit 1; }
389+
378390
- name: "e2e: a Windows program finds its runtime DLLs beside it"
379391
run: |
380392
set -o pipefail

0 commit comments

Comments
 (0)