documentation: Writing Unit and Rendering Tests

Review URL: https://codereview.chromium.org/885133002
This commit is contained in:
halcanary 2015-01-30 07:00:42 -08:00 committed by Commit bot
parent 803a49dfcf
commit c387966343
2 changed files with 67 additions and 35 deletions

View File

@ -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
------------------

65
site/dev/contrib/tests.md Normal file
View File

@ -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