diff options
author | halcanary <halcanary@google.com> | 2015-01-30 07:00:42 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-01-30 07:00:42 -0800 |
commit | c38796634347163e04423102d7cb575606da119f (patch) | |
tree | 3edd74ab22cb94cbef7d31238a197a964a85fe39 /site/dev | |
parent | 803a49dfcf88c47e3b1824f583cb65269ed3a01b (diff) |
documentation: Writing Unit and Rendering Tests
Review URL: https://codereview.chromium.org/885133002
Diffstat (limited to 'site/dev')
-rw-r--r-- | site/dev/contrib/submit.md | 37 | ||||
-rw-r--r-- | site/dev/contrib/tests.md | 65 |
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 |