aboutsummaryrefslogtreecommitdiffhomepage
path: root/site/dev
diff options
context:
space:
mode:
authorGravatar halcanary <halcanary@google.com>2015-01-30 07:00:42 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2015-01-30 07:00:42 -0800
commitc38796634347163e04423102d7cb575606da119f (patch)
tree3edd74ab22cb94cbef7d31238a197a964a85fe39 /site/dev
parent803a49dfcf88c47e3b1824f583cb65269ed3a01b (diff)
documentation: Writing Unit and Rendering Tests
Diffstat (limited to 'site/dev')
-rw-r--r--site/dev/contrib/submit.md37
-rw-r--r--site/dev/contrib/tests.md65
2 files changed, 67 insertions, 35 deletions
diff --git a/site/dev/contrib/submit.md b/site/dev/contrib/submit.md
index fcbcf2077d..a66e7271ac 100644
--- a/site/dev/contrib/submit.md
+++ b/site/dev/contrib/submit.md
@@ -32,41 +32,9 @@ Adding a unit test
If you are willing to change Skia codebase, it's nice to add a test at the same
time. Skia has a simple unittest framework so you can add a case to it.
-Test code is located under the 'tests' directory. Assuming we are adding
-tests/FooTest.cpp, The test code will look like:
+Test code is located under the 'tests' directory.
-<!--?prettify?-->
-~~~~
-/*
- * Copyright ........
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "Test.h"
-
-DEF_TEST(TestFoo, reporter) {
- int x = 2 * 3;
- if (x != 6) {
- ERRORF(reporter, "x should be 6, but is %d", x);
- return;
- }
- REPORTER_ASSERT(reporter, 1 + 1 == 2);
-}
-~~~~
-
-And we need to add this new file to gyp/tests.gyp. Note that file names are
-sorted alphabetically.
-
-<!--?prettify?-->
-~~~~
-'sources': [
- '../tests/AAClipTest.cpp'
- '../tests/FooTest.cpp',
- '../tests/XfermodeTest.cpp',
-],
-~~~~
+See [Writing Unit and Rendering Tests](tests) for details.
Unit tests are best, but if your change touches rendering and you can't think of
an automated way to verify the results, consider writing a GM test or a new page
@@ -74,7 +42,6 @@ of SampleApp. Also, if your change is the GPU code, you may not be able to write
it as part of the standard unit test suite, but there are GPU-specific testing
paths you can extend.
-
Submitting a patch
------------------
diff --git a/site/dev/contrib/tests.md b/site/dev/contrib/tests.md
new file mode 100644
index 0000000000..fbe84dfeff
--- /dev/null
+++ b/site/dev/contrib/tests.md
@@ -0,0 +1,65 @@
+Writing Unit and Rendering Tests
+================================
+
+Writing a Unit Test
+-------------------
+
+1. Add a file `tests/NewUnitTest.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 "Test.h"
+ DEF_TEST(NewUnitTest, reporter) {
+ if (1 + 1 != 2) {
+ ERRORF(reporter, "%d + %d != %d", 1, 1, 2);
+ }
+ bool lifeIsGood = true;
+ REPORTER_ASSERT(reporter, lifeIsGood);
+ }
+
+2. Add a line to `gyp/tests.gypi`:
+
+ '../tests/NewUnitTest.cpp',
+
+3. Recompile and run test:
+
+ ./gyp_skia
+ ninja -C out/Debug dm
+ out/Debug/dm --match NewUnitTest
+
+Writing a Rendering Test
+------------------------
+
+1. Add a file `gm/newgmtest.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 "gm.h"
+ DEF_SIMPLE_GM(newgmtest, canvas, 128, 128) {
+ canvas->clear(SK_ColorWHITE);
+ SkPaint p;
+ p.setStrokeWidth(2);
+ canvas->drawLine(16, 16, 112, 112, p);
+ }
+
+2. Add a line to `gyp/gmslides.gypi`:
+
+ '../gm/newgmtest.cpp',
+
+3. Recompile and run test:
+
+ ./gyp_skia
+ ninja -C out/Debug dm
+ out/Debug/dm --match newgmtest