skia2/site/dev/testing/tests.md

1.6 KiB

Writing Unit and Rendering Tests

Writing a Unit Test

  1. Add a file tests/NewUnitTest.cpp:

    /*
     * 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. 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:

    /*
     * 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. Recompile and run test:

    ./gyp_skia
    ninja -C out/Debug dm
    out/Debug/dm --match newgmtest
    
  3. Run the GM inside SampleApp:

    ./gyp_skia
    ninja -C out/Debug SampleApp
    out/Debug/SampleApp --slide GM:newgmtest
    

    On MacOS, try this:

    out/Debug/SampleApp.app/Contents/MacOS/SampleApp --slide GM:newgmtest