skia-add-test
Skill11k starsChanged 4 days agoBSD-3-ClauseView on GitHub
Add a new test to the Skia repository. Use this skill when you need to create a new unit or integration test in the tests/ directory and ensure it's part of the build system.
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 0 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 13
Create a new .cpp file in the tests/ directory.
- Very specific: line 17
Add the path to your new test file to the tests_sources list in gn/tests.gni.
- Very specific: line 27
Use dm with the --match flag to run your specific test.
- Very specific: line 57
If condition fails, the error will include "My Subtest".
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Skia Add Test Skill
This skill guides you through adding a new test to Skia. Tests are primarily written in C++ and located in the tests/ directory.
Workflow
1. Create the Test File
Create a new .cpp file in the tests/ directory. Use the provided template as a starting point.
- Template Location:
assets/test_template.cpp
2. Update the Build System
Add the path to your new test file to the tests_sources list in gn/tests.gni.
- Paths in
gn/tests.gnishould be relative to the directory or use the$_testsvariable.
3. Build the Test
Compile the dm tool, which runs the tests.
ninja --quiet -C out/Debug dm4. Run the Test
Use dm with the --match flag to run your specific test.
out/Debug/dm --match [test_name]Note: Replace [test_name] with the name provided to the DEF_TEST (or similar) macro.
Key Concepts
Macros for Defining Tests
DEF_TEST(name, reporter): Standard CPU test.DEF_GANESH_TEST(name, reporter, options, ctsEnforcement): Ganesh GPU test.DEF_GRAPHITE_TEST_FOR_ALL_CONTEXTS(name, reporter, context, ctsEnforcement): Graphite GPU test.
CtsEnforcement
CtsEnforcement is used to track tests that should be run as part of Android's Conformance Test Suite (CTS) for a specific milestone (e.g., kApiLevel_T) or later.
CtsEnforcement::kNever: The test is not part of CTS.CtsEnforcement::kApiLevel_U: The test is required for Android U and later.
Reporter and Assertions
REPORTER_ASSERT(reporter, condition, ...): Standard assertion.ERRORF(reporter, ...): Report a failure with a formatted message.skiatest::ReporterContext: Use this stack-allocated object to provide additional context (like subtest names) for failure reports.
Example of ReporterContext:
{
skiatest::ReporterContext subtest(reporter, SkString("My Subtest"));
REPORTER_ASSERT(reporter, condition);
}If condition fails, the error will include "My Subtest".
Trending
Quiet since July.about the whole repository
Who's talking about google/skia
- flutter/flutter“Add ColorFilter.cube to apply 3D lookup table”GitHub · Apr 27, 2020 · 29 reactions
- flutter/flutter“[engine] Fix bold font fallback for non-Latin scripts on iOS”GitHub · Dec 2, 2025 · 24 reactions
- mono/SkiaSharp“[FEATURE] TIFF support”GitHub · Sep 11, 2024 · 12 reactions
- flutter/flutter“Fix RenderParagraph to use correct ideographic baseline”GitHub · Dec 25, 2025 · 8 reactions
- flutter/flutter“3.28 branch info”GitHub · Dec 5, 2024 · 8 reactions
The biggest 5 of 37 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 37
Talked about on GitHub, Stack Overflow and Hacker News (37 times).
On GitHub · 30
- Apr 27, 2020Add ColorFilter.cube to apply 3D lookup table — flutter/flutter29 reactions · 10 comments
- Dec 2, 2025[engine] Fix bold font fallback for non-Latin scripts on iOS — flutter/flutter24 reactions · 11 comments
- Sep 11, 2024[FEATURE] TIFF support — mono/SkiaSharp12 reactions · 2 comments
- Dec 25, 2025Fix RenderParagraph to use correct ideographic baseline — flutter/flutter8 reactions · 19 comments
- Dec 5, 20243.28 branch info — flutter/flutter8 reactions · 4 comments
25 more on GitHub
- Oct 14, 2020Add feature of ComposePathEffect and CornerPathEffect — flutter/flutter8 reactions · 6 comments
- Feb 2, 2018Porting SkTextBox to support draw text in wrap — mono/SkiaSharp.Extended7 reactions · 13 comments
- May 23, 20243.23 beta branch info — flutter/flutter6 reactions · 3 comments
- Jun 9, 2017Porting SkTextBox to support draw text in wrap — mono/SkiaSharp6 reactions · 4 comments
- Aug 11, 2024Skparagraph binding — skia-python/skia-python5 reactions · 19 comments
- Jun 12, 2024Add an API for Getting Glyph Outlines as Paths — flutter/flutter5 reactions · 2 comments
- Jan 17, 2024Wishlist for new benchmarks — dtcxzyw/llvm-opt-benchmarksays it tested it5 reactions · 15 comments
- Nov 4, 2022[FEATURE] D3D12 support — mono/SkiaSharp5 reactions · 2 comments
- Jun 24, 2019Add Serialize methods support for SKPicture — mono/SkiaSharp5 reactions · 16 comments
- Mar 9, 2025support for alternative svg renderers — hyprwm/hyprcursor4 reactions · 4 comments
- Nov 4, 2021Add SkText — HumbleUI/Skija4 reactions
- Sep 30, 2021`dart:ui.LineMetrics` should include the line boundaries — flutter/flutter4 reactions · 1 comment
- Apr 16, 2026Support soft hyphen (U+00AD) rendering with a Hyphens API — flutter/flutter3 reactions · 42 comments
- Jul 27, 2026Bump the cargo-major group across 1 directory with 5 updates — sunsided/miniscreenshot2 reactions · 2 comments
- Jul 20, 2026Bump the cargo-major group across 1 directory with 4 updates — sunsided/miniscreenshot2 reactions · 2 comments
- Jul 13, 2026Bump the cargo-major group across 1 directory with 3 updates — sunsided/miniscreenshot2 reactions · 2 comments
- Jul 6, 2026Bump the cargo-major group across 1 directory with 2 updates — sunsided/miniscreenshot2 reactions · 2 comments
- Jun 22, 2026Update skia-safe requirement from 0.97 to 0.99 in the cargo-major group — sunsided/miniscreenshot2 reactions · 3 comments
- Jun 17, 2025pixels: Multiply by alpha with less loss of precision — servo/servo2 reactions · 2 comments
- Apr 19, 2024Align Android HB formats handling — wcandillon/react-native-skia2 reactions · 1 comment
- Sep 28, 2019Updating to m80 — mono/skia2 reactions · 3 comments
- Mar 6, 2025[skia] Fix dependency skia — microsoft/vcpkg1 reaction
- Apr 12, 2024[Impeller] Use Wang's formula for quad/cubic subdivision. — flutter-team-archive/engine1 reaction · 5 comments
- Mar 22, 2022add metal-window example — rust-skia/rust-skia1 reaction · 2 comments
- Mar 20, 2020Revert "Enable unified OpenGL/Metal builds." — flutter-team-archive/engine0 reactions · 2 comments
On Stack Overflow · 6
- May 30, 2024How to embed skia python surface inside pysdl23 votes
- Dec 17, 2020Why does Android use pinImages to upload texutures of mutable bitmaps to GPU?1 vote
- Dec 1, 2017Skia buggy color blending1 vote · 1 answer
- May 21, 2024Qt/C++ Convert a quadrilateral (trapezoid) into a rectangle without additional libraries0 votes
- Mar 11, 2022Load images for canvaskit-wasm on node.js environment0 votes
1 more on Stack Overflow
- Feb 24, 2021Android 11,crash in skia/src/ops/GrorvalOpFactory.cpp, Help me see why-1 votes · 1 answer
On Hacker News · 1
- Oct 2, 2018HotSort GPU accelerated integer sorting library2 points
In this repository2 other files it gives its agents.
- skia-gn-workflowSkill
- skia-style-checkSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

