diff --git a/MobileGL/MG_Test/Util/PipeStatsTest.cpp b/MobileGL/MG_Test/Util/PipeStatsTest.cpp index b4d57442..c1036b1c 100644 --- a/MobileGL/MG_Test/Util/PipeStatsTest.cpp +++ b/MobileGL/MG_Test/Util/PipeStatsTest.cpp @@ -165,6 +165,12 @@ namespace { // base name must not exist as a file, so a reader that was not updated gets ENOENT and says so // rather than a file that looks like a complete run and is half of one. TEST_F(PipeStatsTest, JsonDumpPathIsRoleDerivedAndTheBaseNameIsNeverOpened) { +#if !MOBILEGL_BUILD_DISAGGREGATED + // RoleDerivedJsonDumpPathForTesting is compiled only with two roles (gate G1: a monolith + // build has one and needs no derivation). The NAME stays registered in every build so + // ctest -N matches between flavours; the body only exists where the collision does. + GTEST_SKIP() << "role-derived dump paths only exist with two roles (MOBILEGL_BUILD_DISAGGREGATED=OFF)"; +#else using MobileGL::MG_Util::Debug::LogRole; const String saved = MobileGL::MG_Config::Features.PipeStatsFile; @@ -195,6 +201,7 @@ namespace { "that is the trunc-versus-trunc collision this derivation exists to prevent"; MobileGL::MG_Config::Features.PipeStatsFile = saved; +#endif } TEST_F(PipeStatsTest, GateHitsAndMissesAreSeparateCounters) { diff --git a/scripts/ci/runtime_mode_proof.py b/scripts/ci/runtime_mode_proof.py index 1a49b8ec..2045fdd8 100644 --- a/scripts/ci/runtime_mode_proof.py +++ b/scripts/ci/runtime_mode_proof.py @@ -70,8 +70,21 @@ def logs_proof(discovery, junit): logs = helper.marker_log_paths(lane) proof = {} for name in sorted(RSP_CASES): + # P6 splits the library log per role: MOBILEGL_LOG_FILE_PATH is a BASE NAME and the + # files that exist are .client.log / .server.log. Reading the base directly + # is FileNotFoundError after the split - the same class of reader the role-split + # landing already fixed everywhere else. path = Path(logs[name]) - proof[name] = {'private_log': str(path), **inproc_log_proof(path.read_text(encoding='utf-8', errors='replace'))} + if not helper.any_role_file(path): + raise RuntimeError( + f'{name}: no role log under {path} ' + f'(looked for {helper.role_paths(path)}); the library never opened the sink') + text = helper.read_role_logs(path) + proof[name] = { + 'private_log': str(path), + 'role_logs': helper.role_paths(path), + **inproc_log_proof(text), + } return proof