Game guide · source of truth
Ledger

M0-07

Unity toolkit gate: Test Framework + Performance Testing (no MCP)

← Ledger

donestatus · M0
10✓ tests passed / failed
9.18Mtokens · 114 min
3evidence files · 44 kB

Evidence

From logs/evidence/M0-07/. Click a thumbnail for the full image.

Logs and data (3)

perf-summary.txt · 547 B · open
  performance (7 sample groups; median / p95):
    BootFrameTimesWithTheSky · FrameTime: 16.7 / 41.2 ms (n=120)
    SkyStepAllocatesNothing · Control.Alloc.GC(): 1 / 1 (n=200, sum 200)
    SkyStepAllocatesNothing · Control.Alloc: 0.2 / 1.4 µs (n=200)
    SkyStepAllocatesNothing · SkyModel+SkyLook.GC(): 0 / 0 (n=200, sum 0)
    SkyStepAllocatesNothing · SkyModel+SkyLook: 4 / 5.4 µs (n=200)
    SkyStepAllocatesNothing · SkyController.Tick.GC(): 0 / 0 (n=200, sum 0)
    SkyStepAllocatesNothing · SkyController.Tick: 5.6 / 6 µs (n=200)
playmode-perf-results.json · 36 kB · open
{
  "TestSuite": "Playmode",
  "Date": 1791452464371,
  "Player": {
    "Development": true,
    "ScreenWidth": 2940,
    "ScreenHeight": 1846,
    "ScreenRefreshRate": 60,
    "Fullscreen": false,
    "Vsync": 1,
    "AntiAliasing": 0,
    "Batchmode": true,
    "RenderThreadingMode": "SingleThreaded",
    "MtRendering": false,
    "GraphicsJobs": false,
    "GpuSkinning": false,
    "Platform": "OSXEditor",
    "ColorSpace": "Linear",
    "AnisotropicFiltering": "Enable",
    "BlendWeights": "TwoBones",
    "GraphicsApi": "Metal",
    "ScriptingBackend": "IL2CPP",
    "AndroidTargetSdkVersion": "AndroidApiLevelAuto",
    "AndroidBuildSystem": "Gradle",
    "BuildTarget": "Android",
    "StereoRenderingPath": "MultiPass"
  },
  "Hardware": {
    "OperatingSystem": "Mac OS X 26.5.2",
    "DeviceModel": "Mac15,12",
    "DeviceName": "(redacted)",
    "ProcessorType": "Apple M3",
    "ProcessorCount": 8,
    "GraphicsDeviceName": "Apple M3",
    "SystemMemorySizeMB": 24576
  },
  "Editor": {
    "Version": "6000.3.25f1",
    "Branch": "6000.3/staging",
    "Changeset": "e1dba0a9aba4",
…
playmode-runner-summary.json · 8 kB · open
{
  "kind": "playmode",
  "result": "pass",
  "why": "all tests passed",
  "startedAt": "2026-10-08T09:27:05.815Z",
  "durationSec": 1046.4,
  "unity": "6000.3.25f1",
  "exitCode": 0,
  "command": "~/Unity/Hub/Editor/6000.3.25f1/Unity.app/Contents/MacOS/Unity -batchmode -projectPath apps/client-unity -runTests -testPlatform PlayMode -testResults logs/test-output/unity/20261008-172705-playmode.xml -perfTestResults logs/test-output/unity/20261008-172705-playmode-perf.json -logFile logs/test-output/unity/20261008-172705-playmode.log",
  "tests": {
    "total": 6,
    "passed": 6,
    "failed": 0,
    "skipped": 0,
    "inconclusive": 0,
    "result": "Passed",
    "durationSec": 38.08
  },
  "perf": [
    {
      "test": "BootFrameTimesWithTheSky",
      "group": "FrameTime",
      "unit": "ms",
      "n": 120,
      "median": 16.6881,
      "p95": 41.2044,
      "max": 95.9923,
      "sum": 2312.5830000000014
    },
    {
      "test": "SkyStepAllocatesNothing",
      "group": "Control.Alloc.GC()",
      "unit": "",
      "n": 200,
      "median": 1,
      "p95": 1,
      "max": 1,
      "sum": 200
    },
    {
…

Tests

pass playmode: perf tests (sky step 0 GC, Boot frame times) + existing · 584.1 s · raw log$ node tools/unity-run.mjs playmode
pass playmode: perf tests, one call per GC sample (sky step 0 GC, control 1/call) + existing · 1049.5 s · raw log$ node tools/unity-run.mjs playmode
pass editmode stays green with the pinned packages · 1510.9 s · raw log$ node tools/unity-run.mjs editmode
pass data tests · 2278.6 s · raw log$ pnpm data:test
pass zoen-sim cargo tests + clippy · 750.4 s · raw log$ pnpm sim:test
pass Zoen.Core dotnet build + xunit · 720.1 s · raw log$ pnpm core:test
pass docs lint + index · 5.3 s · raw log$ pnpm docs:lint
pass wiki typecheck · 102.0 s · raw log$ pnpm --filter @zoen/wiki typecheck
pass wiki production build · 156.6 s · raw log$ pnpm wiki:build
pass wiki e2e (changed specs) · 10.0 s · raw log$ pnpm --filter @zoen/wiki exec playwright test --only-changed

Notes

2026-10-08 10:55 UTC · No MCP: the CoplayDev/unity-mcp smoke test is skipped by owner direction (UNITY_TOOLKIT.md row Deferred, ENGINE_PLATFORMS.md, stack.json step 15, roadmap card updated). Pins: com.unity.test-framework 1.6.0 (built-in core package) and com.unity.test-framework.performance 3.5.0 (packages.unity.com; was depth 3 via Collections, now depth 0), Unity Companion License (ext.nunit 2.0.5: Unity Package Distribution License; Perfolizer MIT) in LICENSES.md + gate record in UNITY_TOOLKIT.md (no listeners/telemetry; build-time Assets/Resources/PerformanceTestRun* ship in players: strip before release, M11). New PlayMode SkyPerformanceTests: SkyModel.Sample+SkyLook.Evaluate over a whole day and SkyController.Tick (rain, cycle off) = 0 GC allocs in 200 single-call samples; allocating control = exactly 1/call (the package floors allocs per iteration, so 1 iteration per measurement); Boot FrameTime median 16.7 / p95 41.2 ms recorded, no budget (editor numbers). unity-run.mjs passes -perfTestResults (<stamp>-<kind>-perf.json, git-ignored) and prints median/p95 per sample group (summarisePerf, unit test + fixture tools/unity/fixtures/perf-results.json). PlayMode 6/6, EditMode 65/65, verify all green. Evidence logs/evidence/M0-07/ (perf JSON with DeviceName redacted, runner summary, perf-summary.txt).