Index: site/dev/testing/tests.md |
diff --git a/site/dev/testing/tests.md b/site/dev/testing/tests.md |
index 1b440ad7ac5f130aabf6a7e96d430c2772b25bce..3b216e88afe022ea7d272698676f0bcbf48b4d35 100644 |
--- a/site/dev/testing/tests.md |
+++ b/site/dev/testing/tests.md |
@@ -1,5 +1,11 @@ |
-Writing Unit and Rendering Tests |
-================================ |
+Writing Skia Tests |
+================== |
+ |
++ [Unit Tests](#test) |
++ [Rendering Tests](#gm) |
++ [Benchmark Tests](#bench) |
+ |
+<span id="test"></span> |
Writing a Unit Test |
------------------- |
@@ -29,6 +35,8 @@ Writing a Unit Test |
ninja -C out/Debug dm |
out/Debug/dm --match NewUnitTest |
+<span id="gm"></span> |
+ |
Writing a Rendering Test |
------------------------ |
@@ -65,3 +73,44 @@ Writing a Rendering Test |
On MacOS, try this: |
out/Debug/SampleApp.app/Contents/MacOS/SampleApp --slide GM:newgmtest |
+ |
+<span id="bench"></span> |
+ |
+Writing a Benchmark Test |
+------------------------ |
+ |
+1. Add a file `bench/FooBench.cpp`: |
+ |
+ <!--?prettify lang=cc?--> |
+ |
+ /* |
+ * Copyright ........ |
+ * |
+ * Use of this source code is governed by a BSD-style license |
+ * that can be found in the LICENSE file. |
+ */ |
+ #include "Benchmark.h" |
+ #include "SkCanvas.h" |
+ namespace { |
+ class FooBench : public Benchmark { |
+ public: |
+ FooBench() {} |
+ virtual ~FooBench() {} |
+ protected: |
+ const char* onGetName() override { return "Foo"; } |
+ SkIPoint onGetSize() override { return SkIPoint{100, 100}; } |
+ void onDraw(int loops, SkCanvas* canvas) override { |
+ while (loops-- > 0) { |
+ canvas->drawLine(0.0f, 0.0f, 100.0f, 100.0f, SkPaint()); |
+ } |
+ } |
+ }; |
+ } // namespace |
+ DEF_BENCH(return new FooBench;) |
+ |
+ |
+2. Recompile and run nanobench: |
+ |
+ python bin/sync-and-gyp |
+ ninja -C out/Release nanobench |
+ out/Release/nanobench --match Foo |