diff options
author | homeboy445 <akshitsan13@gmail.com> | 2021-06-07 15:52:34 +0530 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2021-06-18 07:22:49 +0200 |
commit | 07e269f2596756bf841bbc380929bcffc3ca6bc6 (patch) | |
tree | 41fd6e8bbb715800aa3fc6c72000372627e1beeb /vcl/backendtest | |
parent | 3fc41a91ce3bd9d6756905809e261499a51d9774 (diff) |
VCL graphics rendering tests that a run on LO version change
This commit includes the implementation of graphics rendering tests
which would be automatically triggered at first installation or upgrades
of LibreOffice.
These tests check the graphic rendering interface of LibreOffice
by drawing and checking various graphical rendering tools (eg:. by
drawing lines, polygons etc.). After the successful completion of
tests, their results are stored in the user folder for future
reference.
Change-Id: I59c94b57a1f3f3a9cba55af1067a9702b6da98d8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116779
Tested-by: Tomaž Vajngerl <quikee@gmail.com>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'vcl/backendtest')
-rw-r--r-- | vcl/backendtest/GraphicsRenderTests.cxx | 914 |
1 files changed, 914 insertions, 0 deletions
diff --git a/vcl/backendtest/GraphicsRenderTests.cxx b/vcl/backendtest/GraphicsRenderTests.cxx new file mode 100644 index 000000000000..7002c974fbea --- /dev/null +++ b/vcl/backendtest/GraphicsRenderTests.cxx @@ -0,0 +1,914 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + */ + +#include <test/outputdevice.hxx> +#include <unotools/bootstrap.hxx> +#include <vcl/test/GraphicsRenderTests.hxx> +#include <tools/stream.hxx> + +#define SHOULD_ASSERT \ + (aOutDevTest.getRenderBackendName() != "qt5" && aOutDevTest.getRenderBackendName() != "qt5svp" \ + && aOutDevTest.getRenderBackendName() != "gtk3svp" \ + && aOutDevTest.getRenderBackendName() != "aqua" \ + && aOutDevTest.getRenderBackendName() != "gen" \ + && aOutDevTest.getRenderBackendName() != "genpsp" \ + && aOutDevTest.getRenderBackendName() != "win") + +void GraphicsRenderTests::updateResult(vcl::test::TestResult const result, OString atestname) +{ + switch (result) + { + case vcl::test::TestResult::Passed: + m_aPassed.push_back(atestname); + return; + case vcl::test::TestResult::PassedWithQuirks: + m_aQuirky.push_back(atestname); + return; + case vcl::test::TestResult::Failed: + m_aFailed.push_back(atestname); + return; + } +} + +void GraphicsRenderTests::testDrawRectWithRectangle() +{ + vcl::test::OutputDeviceTestRect aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupRectangle(false); + m_aCurGraphicsBackend = aOutDevTest.getRenderBackendName(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawRectWithRectangle"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestCommon::checkRectangle(aBitmap); + updateResult(eResult, "testDrawRectWithRectangle"); +} + +void GraphicsRenderTests::testDrawRectWithPixel() +{ + vcl::test::OutputDeviceTestPixel aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupRectangle(false); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawRectWithPixel"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestCommon::checkRectangle(aBitmap); + updateResult(eResult, "testDrawRectWithPixel"); +} + +void GraphicsRenderTests::testDrawRectWithLine() +{ + vcl::test::OutputDeviceTestLine aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupRectangle(false); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawRectWithLine"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestCommon::checkRectangle(aBitmap); + updateResult(eResult, "testDrawRectWithLine"); +} + +void GraphicsRenderTests::testDrawRectWithPolygon() +{ + vcl::test::OutputDeviceTestPolygon aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupRectangle(false); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawRectWithPolygon"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestCommon::checkRectangle(aBitmap); + updateResult(eResult, "testDrawRectWithPolygon"); +} + +void GraphicsRenderTests::testDrawRectWithPolyLine() +{ + vcl::test::OutputDeviceTestPolyLine aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupRectangle(false); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawRectWithPolyLine"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestCommon::checkRectangle(aBitmap); + updateResult(eResult, "testDrawRectWithPolyLine"); +} + +void GraphicsRenderTests::testDrawRectWithPolyLineB2D() +{ + vcl::test::OutputDeviceTestPolyLineB2D aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupRectangle(false); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawRectWithPolyLineB2D"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestCommon::checkRectangle(aBitmap); + updateResult(eResult, "testDrawRectWithPolyLineB2D"); +} + +void GraphicsRenderTests::testDrawRectWithPolyPolygon() +{ + vcl::test::OutputDeviceTestPolyPolygon aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupRectangle(false); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawRectWithPolyPolygon"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestCommon::checkRectangle(aBitmap); + updateResult(eResult, "testDrawRectWithPolyPolygon"); +} + +void GraphicsRenderTests::testDrawRectWithPolyPolygonB2D() +{ + vcl::test::OutputDeviceTestPolyPolygonB2D aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupRectangle(false); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawRectWithPolyPolygonB2D"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestCommon::checkRectangle(aBitmap); + updateResult(eResult, "testDrawRectWithPolyPolygonB2D"); +} + +void GraphicsRenderTests::testDrawRectAAWithRectangle() +{ + vcl::test::OutputDeviceTestRect aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupRectangle(true); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawRectAAWithRectangle"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestCommon::checkRectangleAA(aBitmap); + updateResult(eResult, "testDrawRectAAWithRectangle"); +} + +void GraphicsRenderTests::testDrawRectAAWithPixel() +{ + vcl::test::OutputDeviceTestPixel aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupRectangle(true); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawRectAAWithPixel"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestCommon::checkRectangleAA(aBitmap); + updateResult(eResult, "testDrawRectAAWithPixel"); +} + +void GraphicsRenderTests::testDrawRectAAWithLine() +{ + vcl::test::OutputDeviceTestLine aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupRectangle(true); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawRectAAWithLine"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestCommon::checkRectangleAA(aBitmap); + updateResult(eResult, "testDrawRectAAWithLine"); +} + +void GraphicsRenderTests::testDrawRectAAWithPolygon() +{ + vcl::test::OutputDeviceTestPolygon aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupRectangle(true); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawRectAAWithPolygon"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestCommon::checkRectangleAA(aBitmap); + updateResult(eResult, "testDrawRectAAWithPolygon"); +} + +void GraphicsRenderTests::testDrawRectAAWithPolyLine() +{ + vcl::test::OutputDeviceTestPolyLine aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupRectangle(true); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawRectAAWithPolyLine"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestCommon::checkRectangleAA(aBitmap); + updateResult(eResult, "testDrawRectAAWithPolyLine"); +} + +void GraphicsRenderTests::testDrawRectAAWithPolyLineB2D() +{ + vcl::test::OutputDeviceTestPolyLineB2D aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupRectangle(true); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawRectAAWithPolyLineB2D"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestCommon::checkRectangleAA(aBitmap); + updateResult(eResult, "testDrawRectAAWithPolyLineB2D"); +} + +void GraphicsRenderTests::testDrawRectAAWithPolyPolygon() +{ + vcl::test::OutputDeviceTestPolyPolygon aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupRectangle(true); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawRectAAWithPolyPolygon"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestCommon::checkRectangleAA(aBitmap); + updateResult(eResult, "testDrawRectAAWithPolyPolygon"); +} + +void GraphicsRenderTests::testDrawRectAAWithPolyPolygonB2D() +{ + vcl::test::OutputDeviceTestPolyPolygonB2D aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupRectangle(true); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawRectAAWithPolyPolygonB2D"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestCommon::checkRectangleAA(aBitmap); + updateResult(eResult, "testDrawRectAAWithPolyPolygonB2D"); +} + +void GraphicsRenderTests::testDrawFilledRectWithRectangle() +{ + vcl::test::OutputDeviceTestRect aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupFilledRectangle(false); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawFilledRectWithRectangle"); + m_aSkipped.push_back("testDrawFilledRectWithRectangleWithAA"); + return; + } + vcl::test::TestResult eResult + = vcl::test::OutputDeviceTestCommon::checkFilledRectangle(aBitmap, false); + updateResult(eResult, "testDrawFilledRectWithRectangle"); + aBitmap = aOutDevTest.setupFilledRectangle(true); + eResult = vcl::test::OutputDeviceTestCommon::checkFilledRectangle(aBitmap, true); + updateResult(eResult, "testDrawFilledRectWithRectangleWithAA"); +} + +void GraphicsRenderTests::testDrawFilledRectWithPolygon() +{ + vcl::test::OutputDeviceTestPolygon aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupFilledRectangle(false); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawFilledRectWithPolygon"); + m_aSkipped.push_back("testDrawFilledRectWithPolygonWithAA"); + return; + } + vcl::test::TestResult eResult + = vcl::test::OutputDeviceTestCommon::checkFilledRectangle(aBitmap, false); + updateResult(eResult, "testDrawFilledRectWithPolygon"); + aBitmap = aOutDevTest.setupFilledRectangle(true); + eResult = vcl::test::OutputDeviceTestCommon::checkFilledRectangle(aBitmap, true); + updateResult(eResult, "testDrawFilledRectWithPolygonWithAA"); +} + +void GraphicsRenderTests::testDrawFilledRectWithPolyPolygon() +{ + vcl::test::OutputDeviceTestPolyPolygon aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupFilledRectangle(false); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawFilledRectWithPolyPolygon"); + m_aSkipped.push_back("testDrawFilledRectWithPolyPolygonWithAA"); + return; + } + vcl::test::TestResult eResult + = vcl::test::OutputDeviceTestCommon::checkFilledRectangle(aBitmap, false); + updateResult(eResult, "testDrawFilledRectWithPolyPolygon"); + aBitmap = aOutDevTest.setupFilledRectangle(true); + eResult = vcl::test::OutputDeviceTestCommon::checkFilledRectangle(aBitmap, true); + updateResult(eResult, "testDrawFilledRectWithPolyPolygonWithAA"); +} + +void GraphicsRenderTests::testDrawFilledRectWithPolyPolygon2D() +{ + vcl::test::OutputDeviceTestPolyPolygonB2D aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupFilledRectangle(false); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawFilledRectWithPolyPolygon2D"); + m_aSkipped.push_back("testDrawFilledRectWithPolyPolygon2DWithAA"); + return; + } + vcl::test::TestResult eResult + = vcl::test::OutputDeviceTestCommon::checkFilledRectangle(aBitmap, false); + updateResult(eResult, "testDrawFilledRectWithPolyPolygon2D"); + aBitmap = aOutDevTest.setupFilledRectangle(true); + eResult = vcl::test::OutputDeviceTestCommon::checkFilledRectangle(aBitmap, true); + updateResult(eResult, "testDrawFilledRectWithPolyPolygon2DWithAA"); +} + +void GraphicsRenderTests::testDrawDiamondWithPolygon() +{ + vcl::test::OutputDeviceTestPolygon aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupDiamond(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawDiamondWithPolygon"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestCommon::checkDiamond(aBitmap); + updateResult(eResult, "testDrawDiamondWithPolygon"); +} + +void GraphicsRenderTests::testDrawDiamondWithLine() +{ + vcl::test::OutputDeviceTestLine aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupDiamond(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawDiamondWithLine"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestCommon::checkDiamond(aBitmap); + updateResult(eResult, "testDrawDiamondWithLine"); +} + +void GraphicsRenderTests::testDrawDiamondWithPolyline() +{ + vcl::test::OutputDeviceTestPolyLine aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupDiamond(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawDiamondWithPolyline"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestCommon::checkDiamond(aBitmap); + updateResult(eResult, "testDrawDiamondWithPolyline"); +} + +void GraphicsRenderTests::testDrawDiamondWithPolylineB2D() +{ + vcl::test::OutputDeviceTestPolyLineB2D aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupDiamond(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawDiamondWithPolylineB2D"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestCommon::checkDiamond(aBitmap); + updateResult(eResult, "testDrawDiamondWithPolylineB2D"); +} + +void GraphicsRenderTests::testDrawInvertWithRectangle() +{ + vcl::test::OutputDeviceTestRect aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupInvert_NONE(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawInvertWithRectangle"); + return; + } + vcl::test::TestResult eResult + = vcl::test::OutputDeviceTestCommon::checkInvertRectangle(aBitmap); + updateResult(eResult, "testDrawInvertWithRectangle"); +} + +void GraphicsRenderTests::testDrawInvertN50WithRectangle() +{ + vcl::test::OutputDeviceTestRect aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupInvert_N50(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawInvertN50WithRectangle"); + return; + } + vcl::test::TestResult eResult + = vcl::test::OutputDeviceTestCommon::checkInvertN50Rectangle(aBitmap); + updateResult(eResult, "testDrawInvertN50WithRectangle"); +} + +void GraphicsRenderTests::testDrawInvertTrackFrameWithRectangle() +{ + vcl::test::OutputDeviceTestRect aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupInvert_TrackFrame(); + if (!(SHOULD_ASSERT && aOutDevTest.getRenderBackendName() != "svp")) + { + m_aSkipped.push_back("testDrawInvertTrackFrameWithRectangle"); + return; + } + vcl::test::TestResult eResult + = vcl::test::OutputDeviceTestCommon::checkInvertTrackFrameRectangle(aBitmap); + updateResult(eResult, "testDrawInvertTrackFrameWithRectangle"); +} + +void GraphicsRenderTests::testDrawBezierWithPolylineB2D() +{ + vcl::test::OutputDeviceTestPolyLineB2D aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupBezier(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawBezierWithPolylineB2D"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestCommon::checkBezier(aBitmap); + updateResult(eResult, "testDrawBezierWithPolylineB2D"); +} + +void GraphicsRenderTests::testDrawBezierAAWithPolylineB2D() +{ + vcl::test::OutputDeviceTestPolyLineB2D aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupAABezier(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawBezierAAWithPolylineB2D"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestCommon::checkBezier(aBitmap); + updateResult(eResult, "testDrawBezierAAWithPolylineB2D"); +} + +void GraphicsRenderTests::testDrawBitmap() +{ + vcl::test::OutputDeviceTestBitmap aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupDrawBitmap(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawBitmap"); + return; + } + vcl::test::TestResult eResult + = vcl::test::OutputDeviceTestBitmap::checkTransformedBitmap(aBitmap); + updateResult(eResult, "testDrawBitmap"); +} + +void GraphicsRenderTests::testDrawTransformedBitmap() +{ + vcl::test::OutputDeviceTestBitmap aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupDrawTransformedBitmap(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawTransformedBitmap"); + return; + } + vcl::test::TestResult eResult + = vcl::test::OutputDeviceTestBitmap::checkTransformedBitmap(aBitmap); + updateResult(eResult, "testDrawTransformedBitmap"); +} + +void GraphicsRenderTests::testDrawBitmapExWithAlpha() +{ + vcl::test::OutputDeviceTestBitmap aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupDrawBitmapExWithAlpha(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawBitmapExWithAlpha"); + return; + } + vcl::test::TestResult eResult + = vcl::test::OutputDeviceTestBitmap::checkBitmapExWithAlpha(aBitmap); + updateResult(eResult, "testDrawBitmapExWithAlpha"); +} + +void GraphicsRenderTests::testDrawMask() +{ + vcl::test::OutputDeviceTestBitmap aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupDrawMask(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawMask"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestBitmap::checkMask(aBitmap); + updateResult(eResult, "testDrawMask"); +} + +void GraphicsRenderTests::testDrawBlend() +{ + vcl::test::OutputDeviceTestBitmap aOutDevTest; + BitmapEx aBitmapEx = aOutDevTest.setupDrawBlend(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawBlend"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestBitmap::checkBlend(aBitmapEx); + updateResult(eResult, "testDrawBlend"); +} + +void GraphicsRenderTests::testDrawXor() +{ + vcl::test::OutputDeviceTestAnotherOutDev aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupXOR(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawXor"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestAnotherOutDev::checkXOR(aBitmap); + updateResult(eResult, "testDrawXor"); +} + +void GraphicsRenderTests::testClipRectangle() +{ + vcl::test::OutputDeviceTestClip aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupClipRectangle(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testClipRectangle"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestClip::checkClip(aBitmap); + updateResult(eResult, "testClipRectangle"); +} + +void GraphicsRenderTests::testClipPolygon() +{ + vcl::test::OutputDeviceTestClip aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupClipPolygon(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testClipPolygon"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestClip::checkClip(aBitmap); + updateResult(eResult, "testClipPolygon"); +} + +void GraphicsRenderTests::testClipPolyPolygon() +{ + vcl::test::OutputDeviceTestClip aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupClipPolyPolygon(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testClipPolyPolygon"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestClip::checkClip(aBitmap); + updateResult(eResult, "testClipPolyPolygon"); +} + +void GraphicsRenderTests::testClipB2DPolyPolygon() +{ + vcl::test::OutputDeviceTestClip aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupClipB2DPolyPolygon(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testClipB2DPolyPolygon"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestClip::checkClip(aBitmap); + updateResult(eResult, "testClipB2DPolyPolygon"); +} + +void GraphicsRenderTests::testDrawOutDev() +{ + vcl::test::OutputDeviceTestAnotherOutDev aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupDrawOutDev(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDrawOutDev"); + return; + } + vcl::test::TestResult eResult + = vcl::test::OutputDeviceTestAnotherOutDev::checkDrawOutDev(aBitmap); + updateResult(eResult, "testDrawOutDev"); +} + +void GraphicsRenderTests::testDashedLine() +{ + vcl::test::OutputDeviceTestLine aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupDashedLine(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testDashedLine"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestLine::checkDashedLine(aBitmap); + updateResult(eResult, "testDashedLine"); +} + +void GraphicsRenderTests::testLinearGradient() +{ + vcl::test::OutputDeviceTestGradient aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupLinearGradient(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testLinearGradient"); + return; + } + vcl::test::TestResult eResult + = vcl::test::OutputDeviceTestGradient::checkLinearGradient(aBitmap); + updateResult(eResult, "testLinearGradient"); +} + +void GraphicsRenderTests::testLinearGradientAngled() +{ + vcl::test::OutputDeviceTestGradient aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupLinearGradientAngled(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testLinearGradientAngled"); + return; + } + vcl::test::TestResult eResult + = vcl::test::OutputDeviceTestGradient::checkLinearGradientAngled(aBitmap); + updateResult(eResult, "testLinearGradientAngled"); +} + +void GraphicsRenderTests::testLinearGradientBorder() +{ + vcl::test::OutputDeviceTestGradient aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupLinearGradientBorder(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testLinearGradientBorder"); + return; + } + vcl::test::TestResult eResult + = vcl::test::OutputDeviceTestGradient::checkLinearGradientBorder(aBitmap); + updateResult(eResult, "testLinearGradientBorder"); +} + +void GraphicsRenderTests::testLinearGradientIntensity() +{ + vcl::test::OutputDeviceTestGradient aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupLinearGradientIntensity(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testLinearGradientIntensity"); + return; + } + vcl::test::TestResult eResult + = vcl::test::OutputDeviceTestGradient::checkLinearGradientIntensity(aBitmap); + updateResult(eResult, "testLinearGradientIntensity"); +} + +void GraphicsRenderTests::testLinearGradientSteps() +{ + vcl::test::OutputDeviceTestGradient aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupLinearGradientSteps(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testLinearGradientSteps"); + return; + } + vcl::test::TestResult eResult + = vcl::test::OutputDeviceTestGradient::checkLinearGradientSteps(aBitmap); + updateResult(eResult, "testLinearGradientSteps"); +} + +void GraphicsRenderTests::testAxialGradient() +{ + vcl::test::OutputDeviceTestGradient aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupAxialGradient(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testAxialGradient"); + return; + } + vcl::test::TestResult eResult + = vcl::test::OutputDeviceTestGradient::checkAxialGradient(aBitmap); + updateResult(eResult, "testAxialGradient"); +} + +void GraphicsRenderTests::testRadialGradient() +{ + vcl::test::OutputDeviceTestGradient aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupRadialGradient(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testRadialGradient"); + return; + } + vcl::test::TestResult eResult + = vcl::test::OutputDeviceTestGradient::checkRadialGradient(aBitmap); + updateResult(eResult, "testRadialGradient"); +} + +void GraphicsRenderTests::testRadialGradientOfs() +{ + vcl::test::OutputDeviceTestGradient aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupRadialGradientOfs(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testRadialGradientOfs"); + return; + } + vcl::test::TestResult eResult + = vcl::test::OutputDeviceTestGradient::checkRadialGradientOfs(aBitmap); + updateResult(eResult, "testRadialGradientOfs"); +} + +void GraphicsRenderTests::testLineJoinBevel() +{ + vcl::test::OutputDeviceTestLine aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupLineJoinBevel(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testLineJoinBevel"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestLine::checkLineJoinBevel(aBitmap); + updateResult(eResult, "testLineJoinBevel"); +} + +void GraphicsRenderTests::testLineJoinRound() +{ + vcl::test::OutputDeviceTestLine aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupLineJoinRound(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testLineJoinRound"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestLine::checkLineJoinRound(aBitmap); + updateResult(eResult, "testLineJoinRound"); +} + +void GraphicsRenderTests::testLineJoinMiter() +{ + vcl::test::OutputDeviceTestLine aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupLineJoinMiter(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testLineJoinMiter"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestLine::checkLineJoinMiter(aBitmap); + updateResult(eResult, "testLineJoinMiter"); +} + +void GraphicsRenderTests::testLineJoinNone() +{ + vcl::test::OutputDeviceTestLine aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupLineJoinNone(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testLineJoinNone"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestLine::checkLineJoinNone(aBitmap); + updateResult(eResult, "testLineJoinNone"); +} + +void GraphicsRenderTests::testLineCapRound() +{ + vcl::test::OutputDeviceTestLine aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupLineCapRound(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testLineCapRound"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestLine::checkLineCapRound(aBitmap); + updateResult(eResult, "testLineCapRound"); +} + +void GraphicsRenderTests::testLineCapSquare() +{ + vcl::test::OutputDeviceTestLine aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupLineCapSquare(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testLineCapSquare"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestLine::checkLineCapSquare(aBitmap); + updateResult(eResult, "testLineCapSquare"); +} + +void GraphicsRenderTests::testLineCapButt() +{ + vcl::test::OutputDeviceTestLine aOutDevTest; + Bitmap aBitmap = aOutDevTest.setupLineCapButt(); + if (!SHOULD_ASSERT) + { + m_aSkipped.push_back("testLineCapButt"); + return; + } + vcl::test::TestResult eResult = vcl::test::OutputDeviceTestLine::checkLineCapButt(aBitmap); + updateResult(eResult, "testLineCapButt"); +} + +void GraphicsRenderTests::runALLTests() +{ + testDrawRectWithRectangle(); + testDrawRectWithPixel(); + testDrawRectWithLine(); + testDrawRectWithPolygon(); + testDrawRectWithPolyLine(); + testDrawRectWithPolyLineB2D(); + testDrawRectWithPolyPolygon(); + testDrawRectWithPolyPolygonB2D(); + testDrawRectAAWithRectangle(); + testDrawRectAAWithPixel(); + testDrawRectAAWithLine(); + testDrawRectAAWithPolygon(); + testDrawRectAAWithPolyLine(); + testDrawRectAAWithPolyLineB2D(); + testDrawRectAAWithPolyPolygon(); + testDrawRectAAWithPolyPolygonB2D(); + testDrawFilledRectWithRectangle(); + testDrawFilledRectWithPolygon(); + testDrawFilledRectWithPolyPolygon(); + testDrawFilledRectWithPolyPolygon2D(); + testDrawDiamondWithPolygon(); + testDrawDiamondWithLine(); + testDrawDiamondWithPolyline(); + testDrawDiamondWithPolylineB2D(); + testDrawInvertWithRectangle(); + testDrawInvertN50WithRectangle(); + testDrawInvertTrackFrameWithRectangle(); + testDrawBezierWithPolylineB2D(); + testDrawBezierAAWithPolylineB2D(); + testDrawBitmap(); + testDrawTransformedBitmap(); + testDrawBitmapExWithAlpha(); + testDrawMask(); + testDrawBlend(); + testDrawXor(); + testClipRectangle(); + testClipPolygon(); + testClipPolyPolygon(); + testClipB2DPolyPolygon(); + testDrawOutDev(); + testDashedLine(); + testLinearGradient(); + testLinearGradientAngled(); + testLinearGradientBorder(); + testLinearGradientIntensity(); + testLinearGradientSteps(); + testAxialGradient(); + testRadialGradient(); + testRadialGradientOfs(); + testLineJoinBevel(); + testLineJoinRound(); + testLineJoinMiter(); + testLineJoinNone(); + testLineCapRound(); + testLineCapSquare(); + testLineCapButt(); +} + +void GraphicsRenderTests::run() +{ + runALLTests(); + //Storing the test's results in the main user installation directory. + OUString aUserInstallPath; + ::utl::Bootstrap::locateUserInstallation(aUserInstallPath); + SvFileStream logFile(aUserInstallPath + "/user/GraphicsRenderTests.log", + StreamMode::WRITE | StreamMode::TRUNC); + OUString atemp = "Graphic Backend used: " + m_aCurGraphicsBackend; + logFile.WriteLine(OUStringToOString(atemp, RTL_TEXTENCODING_UTF8)); + logFile.WriteLine("Passed tests : " + std::to_string(m_aPassed.size())); + logFile.WriteLine("Quirky tests : " + std::to_string(m_aQuirky.size())); + logFile.WriteLine("Failed tests : " + std::to_string(m_aFailed.size())); + logFile.WriteLine("Skipped tests : " + std::to_string(m_aSkipped.size())); + logFile.WriteLine("\n---Name of the tests that failed---"); + if (m_aFailed.size() > 0) + { + for (const class OString& tests : m_aFailed) + { + logFile.WriteLine(tests); + } + } + else + { + logFile.WriteLine("No test has been failed."); + } + logFile.WriteLine("\n---Name of the tests that were Quirky---"); + if (m_aQuirky.size() > 0) + { + for (const class OString& tests : m_aQuirky) + { + logFile.WriteLine(tests); + } + } + else + { + logFile.WriteLine("No test was Quirky."); + } + logFile.WriteLine("\n---Name of the tests that were Skipped---"); + if (m_aSkipped.size() > 0) + { + for (const class OString& tests : m_aSkipped) + { + logFile.WriteLine(tests); + } + } + else + { + logFile.WriteLine("No test was Skipped."); + } +} |