@@ -20,7 +20,19 @@ version = "0.1.0"
2020
2121[xlings]
2222# Host build-tools the project wants available (xlings "deps").
23- deps = ["make@4.4", "cmake@3.28"]
23+ #
24+ # ⚠️ THE VERSION HAS TO EXIST, AND UNTIL 2026.9.1.1 IT DID NOT HAVE TO.
25+ # This read `make@4.4, cmake@3.28`; the index carries make 4.3 and cmake
26+ # 4.4.2/4.0.2, so neither has ever resolved. That was invisible because #531's
27+ # provisioning did not read its own result — every failure xlings reported was
28+ # taken as success — so this test asserted materialization on top of an install
29+ # that never happened, which is the state #531 was written to end. Now the
30+ # failure is reported and the build stops, which is what makes the fixture's
31+ # error visible at last.
32+ #
33+ # `ninja@1.12.1` is deliberate: it is already installed anywhere mcpp can
34+ # build, so provisioning short-circuits and this test still costs no download.
35+ deps = ["ninja@1.12.1"]
2436# A named per-project sandbox.
2537subos = "dev"
2638
@@ -49,7 +61,7 @@ J=.mcpp/.xlings.json
4961[ -f " $J " ] || { echo " FAIL: $J was not written" ; ls -la .mcpp 2> /dev/null; exit 1; }
5062echo " --- $J ---" ; cat " $J "
5163grep -q ' "deps"' " $J " || { echo " FAIL: deps not materialized" ; exit 1; }
52- grep -q ' make@4.4 ' " $J " || { echo " FAIL: deps entry missing" ; exit 1; }
64+ grep -q ' ninja@1.12.1 ' " $J " || { echo " FAIL: deps entry missing" ; exit 1; }
5365grep -q ' "subos": "dev"' " $J " || { echo " FAIL: subos not materialized" ; exit 1; }
5466grep -q ' "workspace"' " $J " || { echo " FAIL: workspace not materialized" ; exit 1; }
5567grep -q ' "ninja": "1.12.1"' " $J " || { echo " FAIL: workspace pin missing" ; exit 1; }
0 commit comments