@@ -251,9 +251,13 @@ jobs:
251251 "$GITHUB_WORKSPACE/.github/tools/git_clone_retry.sh" \
252252 --quiet --depth 1 -b "$OPENKAL_BRANCH" \
253253 https://github.com/mcpplibs/openkal-llvm-runtime "$RUNNER_TEMP/okl"
254+ "$GITHUB_WORKSPACE/.github/tools/git_clone_retry.sh" \
255+ --quiet --depth 1 https://github.com/mcpp-community/mcpp-index "$RUNNER_TEMP/openkal-index"
256+ export MCPP_OPENKAL_INDEX="$RUNNER_TEMP/openkal-index"
254257 cd "$RUNNER_TEMP/okl/examples/same-source"
255258 mkdir -p "$RUNNER_TEMP/out"
256259 git -C "$RUNNER_TEMP/okl" rev-parse HEAD > "$RUNNER_TEMP/out/source-sha.txt"
260+ git -C "$MCPP_OPENKAL_INDEX" rev-parse HEAD > "$RUNNER_TEMP/out/index-source-sha.txt"
257261 echo "openkal-llvm-runtime source SHA: $(cat "$RUNNER_TEMP/out/source-sha.txt")"
258262 python3 - "$GITHUB_WORKSPACE/tests/fixtures/openkal-hosted-threads/src/main.cpp.in" "$RUNNER_TEMP/out/threads-source-sha256.txt" <<'PYHASH'
259263 import hashlib, pathlib, sys
@@ -459,6 +463,7 @@ jobs:
459463 fail=0
460464 source_sha=""
461465 threads_sha=""
466+ index_sha=""
462467 mkdir -p run-evidence
463468 for host in linux linux-aarch64 macos windows; do
464469 sha_file="art/openkal-built-on-$host/source-sha.txt"
@@ -474,6 +479,10 @@ jobs:
474479 echo "::error::$host built source $sha, expected $source_sha"; fail=1; continue
475480 fi
476481 echo "openkal-llvm-runtime source SHA: $sha"
482+ index_commit=$(tr -d '\r\n' < "art/openkal-built-on-$host/index-source-sha.txt")
483+ [[ "$index_commit" =~ ^[0-9a-f]{40}$ ]] || { echo '::error::invalid index source SHA'; exit 1; }
484+ if [ -z "$index_sha" ]; then index_sha="$index_commit"; fi
485+ [ "$index_commit" = "$index_sha" ] || { echo '::error::index sources differ'; exit 1; }
477486 probe_sha=$(tr -d '\r\n' < "art/openkal-built-on-$host/threads-source-sha256.txt")
478487 [[ "$probe_sha" =~ ^[0-9a-f]{64}$ ]] || { echo '::error::invalid hosted probe digest'; exit 1; }
479488 if [ -z "$threads_sha" ]; then threads_sha="$probe_sha"; fi
@@ -516,6 +525,7 @@ jobs:
516525 "./$threads_bin" > "run-evidence/$host.threads.log" 2>&1
517526 cat "run-evidence/$host.threads.log"
518527 grep -qxF 'openkal hosted threads: isolation, destructors and concurrent unwind ok' "run-evidence/$host.threads.log"
528+ grep -qxF 'openkal indexed JSON: dump, parse, literals and ordered_json ok' "run-evidence/$host.threads.log"
519529 done
520530 [ "$fail" = 0 ] || exit 1
521531 echo "four builds, one system, identical sources, exceptions and hosted TLS/threads"
@@ -722,6 +732,12 @@ jobs:
722732 with :
723733 host : linux-aarch64
724734
735+ - uses : actions/checkout@v4
736+ with :
737+ repository : mcpp-community/mcpp-index
738+ ref : main
739+ path : _openkal-native-index
740+
725741 - name : Native platform and graph stack
726742 env :
727743 MCPP_VENDORED_XLINGS : ${{ env.XLINGS_BIN }}
@@ -731,17 +747,22 @@ jobs:
731747 set -euo pipefail
732748 test "$(uname -m)" = aarch64
733749 export MCPP="$MCPP_FRESH"
750+ export MCPP_OPENKAL_INDEX="$GITHUB_WORKSPACE/_openkal-native-index"
751+ git -C "$MCPP_OPENKAL_INDEX" rev-parse HEAD | tee native-openkal-index-sha.txt
734752 "$MCPP" toolchain install llvm 23.1.3
735753 # The existing test builds real openkal-musl and LLVM runtime packages,
736754 # verifies every graph layer, checks static ELF closure and runs it.
737755 bash tests/e2e/286_the_openkal_stack_still_builds.sh 2>&1 | tee native-openkal.log
738756 grep -qF "ok native aarch64 ELF" native-openkal.log
739757 grep -qF "OK: the openkal stack builds, links statically and runs" native-openkal.log
740758 grep -qxF 'openkal hosted threads: isolation, destructors and concurrent unwind ok' native-openkal.log
759+ grep -qxF 'openkal indexed JSON: dump, parse, literals and ordered_json ok' native-openkal.log
741760
742761 - uses : actions/upload-artifact@v4
743762 if : always()
744763 with :
745764 name : openkal-native-arm64
746- path : native-openkal.log
765+ path : |
766+ native-openkal.log
767+ native-openkal-index-sha.txt
747768 if-no-files-found : warn
0 commit comments