Skip to content

Commit 9ead6a5

Browse files
committed
Fix runtime comparison protocol preflight
1 parent 939161c commit 9ead6a5

4 files changed

Lines changed: 586 additions & 20 deletions

File tree

.github/workflows/upstream-runtime-comparison.yml

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626
matrix:
2727
include:
2828
- scenario: dropped-items
29-
scene_size: 2048
29+
scene_size: 512
3030
- scenario: block-active
3131
scene_size: 1024
3232
env:
@@ -388,6 +388,8 @@ jobs:
388388
COMPARE_MEASURE_SECONDS=10 \
389389
COMPARE_PROTOCOL_TRACE_ENABLED=1 \
390390
COMPARE_PROTOCOL_TRACE_MAX_EVENTS=500000 \
391+
COMPARE_PROTOCOL_TRACE_PACKET_ALLOWLIST=bundle_delimiter,entity_destroy,spawn_entity \
392+
COMPARE_PROTOCOL_TRACE_AGGREGATE_PACKET_ALLOWLIST=entity_metadata \
391393
bash tools/perf/run-upstream-runtime-once.sh
392394
393395
python3 - \
@@ -435,6 +437,20 @@ jobs:
435437
raise SystemExit("preflight artifact SHA mismatch")
436438
if manifest.get("canonicalConfigSha256") != config_sha:
437439
raise SystemExit("preflight canonical config SHA mismatch")
440+
expected_packet_allowlist = [
441+
"bundle_delimiter", "entity_destroy", "spawn_entity"
442+
]
443+
expected_aggregate_packet_allowlist = ["entity_metadata"]
444+
if manifest.get("protocolTracePacketAllowlist") != expected_packet_allowlist:
445+
raise SystemExit("preflight manifest protocol packet allowlist mismatch")
446+
if (manifest.get("protocolTraceAggregatePacketAllowlist")
447+
!= expected_aggregate_packet_allowlist):
448+
raise SystemExit("preflight manifest aggregate packet allowlist mismatch")
449+
if trace.get("input", {}).get("capturePacketAllowlist") != expected_packet_allowlist:
450+
raise SystemExit("preflight analysis protocol packet allowlist mismatch")
451+
if (trace.get("input", {}).get("aggregatePacketAllowlist")
452+
!= expected_aggregate_packet_allowlist):
453+
raise SystemExit("preflight analysis aggregate packet allowlist mismatch")
438454
for field, expected in expected_cpu.items():
439455
if manifest.get(field) != expected:
440456
raise SystemExit(
@@ -460,6 +476,16 @@ jobs:
460476
if not isinstance(metadata_observations, int) or metadata_observations <= 0:
461477
raise SystemExit(
462478
f"preflight observed no entity metadata: {metadata_observations!r}")
479+
aggregated_metadata = trace.get("counts", {}).get(
480+
"byPacketAggregated", {}).get("entity_metadata", 0)
481+
window_aggregated = trace.get("traceCoverage", {}).get(
482+
"windowAggregatedEventCount")
483+
if (aggregated_metadata != metadata_observations
484+
or window_aggregated != metadata_observations):
485+
raise SystemExit(
486+
"preflight aggregate metadata count mismatch: "
487+
f"combined={metadata_observations!r}, "
488+
f"aggregate={aggregated_metadata!r}, window={window_aggregated!r}")
463489
if scenario == "dropped-items" and spawn_observations < scene_size:
464490
raise SystemExit(
465491
f"dropped-item preflight observed only {spawn_observations} spawns for {scene_size} items")

0 commit comments

Comments
 (0)