IMPORTANT DEBUGGING NOTE: batches of tests are run inside their own process. For debugging a test inside a debugger, use the --gtest_filter= flag along with --single-process-tests. Using sharding settings from environment. This is shard 0/1 Using 1 parallel jobs. Note: Google Test filter = GradientCacheCollisionTest.FloatStorageManagerNumStopsDesync [==========] Running 1 test from 1 test suite. [----------] Global test environment set-up. [----------] 1 test from GradientCacheCollisionTest [ RUN ] GradientCacheCollisionTest.FloatStorageManagerNumStopsDesync === FloatStorageManager uniqueID-collision desync === gradient_a: ptr=0x7264431e7cc0 uniqueID=1 numStops=9 -> {dstData=0x7254431e8b00, bufferOffset=0} (allocated 45 floats) gradient_b: ptr=0x7264431ffb40 uniqueID=1 numStops=10000 -> {dstData=0x714439d888b4, bufferOffset=45} (allocated 0 floats: CACHE HIT ON COLLISION) ../../skia/ext/gradient_cache_collision_unittest.cc:122: Failure Expected equality of these values: ptr_b Which is: 0x714439d888b4 nullptr Which is: (nullptr) expected cache hit on colliding uniqueID Stack trace: #0 0x56250f931caf (/chromium/chromium/src/out/asan/skia_unittests+0x191ecae) ../../skia/ext/gradient_cache_collision_unittest.cc:123: Failure Expected equality of these values: off_b Which is: 45 off_a Which is: 0 expected B to receive A's bufferOffset Stack trace: #0 0x56250f931dde (/chromium/chromium/src/out/asan/skia_unittests+0x191eddd) ../../skia/ext/gradient_cache_collision_unittest.cc:139: Failure Expected equality of these values: off_c Which is: 50045 kSmallStops * 5 Which is: 45 fGradientStorage grew past 45 floats; collision not reproduced Stack trace: #0 0x56250f93233d (/chromium/chromium/src/out/asan/skia_unittests+0x191f33c) finalize() will bind an SSBO of 50090 floats (200360 bytes) $colorize_grad_buf for gradient_b reads up to index 50041 => GPU storage-buffer OOB READ of -45 floats (-180 bytes) past the binding On macOS (Graphite/Dawn-Metal default, disable_robustness toggle set in dawn_context_provider.cc), the emitted MSL indexes a raw `device float*` with no bounds check; leaked bytes are rendered as RGBA and readable via getImageData(). ===================================================== ../../skia/ext/gradient_cache_collision_unittest.cc:163: Failure Expected: (last_color_index) > (ssbo_floats), actual: 50041 vs 50090 no OOB: SSBO covers all indices gradient_b will read Stack trace: #0 0x56250f932541 (/chromium/chromium/src/out/asan/skia_unittests+0x191f540) [ FAILED ] GradientCacheCollisionTest.FloatStorageManagerNumStopsDesync (43 ms) [----------] 1 test from GradientCacheCollisionTest (50 ms total) [----------] Global test environment tear-down [==========] 1 test from 1 test suite ran. (50 ms total) [ PASSED ] 0 tests. [ FAILED ] 1 test, listed below: [ FAILED ] GradientCacheCollisionTest.FloatStorageManagerNumStopsDesync 1 FAILED TEST [1/1] GradientCacheCollisionTest.FloatStorageManagerNumStopsDesync (43 ms) 1 test failed: GradientCacheCollisionTest.FloatStorageManagerNumStopsDesync (../../skia/ext/gradient_cache_collision_unittest.cc:61) Tests took 0 seconds.