diff options
author | Mike Kaganski <mike.kaganski@collabora.com> | 2021-03-30 18:36:08 +0300 |
---|---|---|
committer | Mike Kaganski <mike.kaganski@collabora.com> | 2021-03-30 23:00:37 +0200 |
commit | 9c6142ec26a0ba61b1cf58d1e6bf0b5376394bcd (patch) | |
tree | ef88a77bfaf4e1f119a1952d3e9fa58810001a3a /vcl/qa | |
parent | fb68609fadc7fd46c44f404ac611d87e2cc03ea0 (diff) |
Exclude some tests in Windows RDP session
It seems that RDP may change (limit?) color space (even configured
to use 32-bit colors), and then some tests start failing like this:
Test name: BackendTest::testDrawAlphaBitmapMirrored
equality assertion failed
- Expected: c[80000000]
- Actual : c[84000000]
Debugging ImplDrawBitmap in vcl/win/gdi/gdiimpl.cxx, and adding a
call to GetPixel immediately after the call to StretchDIBits, shows
that the resulting color on the device is different from the color
in the bitmap data: e.g., for original color {128, 0, 0} the result
is {132, 0, 0}.
Calling GetColorAdjustment shows that there's no color adjustments
set for the device, so I can't detect or modify the behavior this
way. So just disable the tests for now when running in RDP sessions.
Change-Id: Ie89d07f18f53e56bed6f7fa58432b8575b4d9f12
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113388
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Diffstat (limited to 'vcl/qa')
-rw-r--r-- | vcl/qa/cppunit/BackendTest.cxx | 88 | ||||
-rw-r--r-- | vcl/qa/cppunit/bitmaprender/BitmapRenderTest.cxx | 2 |
2 files changed, 90 insertions, 0 deletions
diff --git a/vcl/qa/cppunit/BackendTest.cxx b/vcl/qa/cppunit/BackendTest.cxx index 2f05ac47aea8..bb3abce0f99c 100644 --- a/vcl/qa/cppunit/BackendTest.cxx +++ b/vcl/qa/cppunit/BackendTest.cxx @@ -94,6 +94,8 @@ public: void testDrawRectWithRectangle() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestRect aOutDevTest; Bitmap aBitmap = aOutDevTest.setupRectangle(false); auto eResult = vcl::test::OutputDeviceTestCommon::checkRectangle(aBitmap); @@ -105,6 +107,8 @@ public: void testDrawRectWithPixel() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestPixel aOutDevTest; Bitmap aBitmap = aOutDevTest.setupRectangle(false); auto eResult = vcl::test::OutputDeviceTestCommon::checkRectangle(aBitmap); @@ -116,6 +120,8 @@ public: void testDrawRectWithLine() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestLine aOutDevTest; Bitmap aBitmap = aOutDevTest.setupRectangle(false); auto eResult = vcl::test::OutputDeviceTestCommon::checkRectangle(aBitmap); @@ -127,6 +133,8 @@ public: void testDrawRectWithPolygon() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestPolygon aOutDevTest; Bitmap aBitmap = aOutDevTest.setupRectangle(false); auto eResult = vcl::test::OutputDeviceTestCommon::checkRectangle(aBitmap); @@ -137,6 +145,8 @@ public: void testDrawRectWithPolyLine() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestPolyLine aOutDevTest; Bitmap aBitmap = aOutDevTest.setupRectangle(false); auto eResult = vcl::test::OutputDeviceTestCommon::checkRectangle(aBitmap); @@ -147,6 +157,8 @@ public: void testDrawRectWithPolyLineB2D() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestPolyLineB2D aOutDevTest; Bitmap aBitmap = aOutDevTest.setupRectangle(false); auto eResult = vcl::test::OutputDeviceTestCommon::checkRectangle(aBitmap); @@ -157,6 +169,8 @@ public: void testDrawRectWithPolyPolygon() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestPolyPolygon aOutDevTest; Bitmap aBitmap = aOutDevTest.setupRectangle(false); auto eResult = vcl::test::OutputDeviceTestCommon::checkRectangle(aBitmap); @@ -167,6 +181,8 @@ public: void testDrawRectWithPolyPolygonB2D() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestPolyPolygonB2D aOutDevTest; Bitmap aBitmap = aOutDevTest.setupRectangle(false); auto eResult = vcl::test::OutputDeviceTestCommon::checkRectangle(aBitmap); @@ -177,6 +193,8 @@ public: void testDrawRectAAWithRectangle() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestRect aOutDevTest; Bitmap aBitmap = aOutDevTest.setupRectangle(true); auto eResult = vcl::test::OutputDeviceTestCommon::checkRectangleAA(aBitmap); @@ -187,6 +205,8 @@ public: void testDrawRectAAWithPixel() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestPixel aOutDevTest; Bitmap aBitmap = aOutDevTest.setupRectangle(true); auto eResult = vcl::test::OutputDeviceTestCommon::checkRectangleAA(aBitmap); @@ -197,6 +217,8 @@ public: void testDrawRectAAWithLine() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestLine aOutDevTest; Bitmap aBitmap = aOutDevTest.setupRectangle(true); auto eResult = vcl::test::OutputDeviceTestCommon::checkRectangleAA(aBitmap); @@ -207,6 +229,8 @@ public: void testDrawRectAAWithPolygon() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestPolygon aOutDevTest; Bitmap aBitmap = aOutDevTest.setupRectangle(true); auto eResult = vcl::test::OutputDeviceTestCommon::checkRectangleAA(aBitmap); @@ -217,6 +241,8 @@ public: void testDrawRectAAWithPolyLine() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestPolyLine aOutDevTest; Bitmap aBitmap = aOutDevTest.setupRectangle(true); auto eResult = vcl::test::OutputDeviceTestCommon::checkRectangleAA(aBitmap); @@ -227,6 +253,8 @@ public: void testDrawRectAAWithPolyLineB2D() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestPolyLineB2D aOutDevTest; Bitmap aBitmap = aOutDevTest.setupRectangle(true); auto eResult = vcl::test::OutputDeviceTestCommon::checkRectangleAA(aBitmap); @@ -237,6 +265,8 @@ public: void testDrawRectAAWithPolyPolygon() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestPolyPolygon aOutDevTest; Bitmap aBitmap = aOutDevTest.setupRectangle(true); auto eResult = vcl::test::OutputDeviceTestCommon::checkRectangleAA(aBitmap); @@ -247,6 +277,8 @@ public: void testDrawRectAAWithPolyPolygonB2D() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestPolyPolygonB2D aOutDevTest; Bitmap aBitmap = aOutDevTest.setupRectangle(true); auto eResult = vcl::test::OutputDeviceTestCommon::checkRectangleAA(aBitmap); @@ -257,6 +289,8 @@ public: void testDrawFilledRectWithRectangle() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestRect aOutDevTest; Bitmap aBitmap = aOutDevTest.setupFilledRectangle(false); auto eResult = vcl::test::OutputDeviceTestCommon::checkFilledRectangle(aBitmap, false); @@ -272,6 +306,8 @@ public: void testDrawFilledRectWithPolygon() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestPolygon aOutDevTest; Bitmap aBitmap = aOutDevTest.setupFilledRectangle(false); auto eResult = vcl::test::OutputDeviceTestCommon::checkFilledRectangle(aBitmap, false); @@ -287,6 +323,8 @@ public: void testDrawFilledRectWithPolyPolygon() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestPolyPolygon aOutDevTest; Bitmap aBitmap = aOutDevTest.setupFilledRectangle(false); auto eResult = vcl::test::OutputDeviceTestCommon::checkFilledRectangle(aBitmap, false); @@ -302,6 +340,8 @@ public: void testDrawFilledRectWithPolyPolygon2D() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestPolyPolygonB2D aOutDevTest; Bitmap aBitmap = aOutDevTest.setupFilledRectangle(false); auto eResult = vcl::test::OutputDeviceTestCommon::checkFilledRectangle(aBitmap, false); @@ -387,6 +427,8 @@ public: void testDrawBezierWithPolylineB2D() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestPolyLineB2D aOutDevTest; Bitmap aBitmap = aOutDevTest.setupBezier(); auto eResult = vcl::test::OutputDeviceTestCommon::checkBezier(aBitmap); @@ -397,6 +439,8 @@ public: void testDrawBezierAAWithPolylineB2D() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestPolyLineB2D aOutDevTest; Bitmap aBitmap = aOutDevTest.setupAABezier(); auto eResult = vcl::test::OutputDeviceTestCommon::checkBezier(aBitmap); @@ -407,6 +451,8 @@ public: void testDrawBitmap() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestBitmap aOutDevTest; Bitmap aBitmap = aOutDevTest.setupDrawBitmap(); exportImage("08-01_bitmap_test.png", aBitmap); @@ -417,6 +463,8 @@ public: void testDrawTransformedBitmap() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestBitmap aOutDevTest; Bitmap aBitmap = aOutDevTest.setupDrawTransformedBitmap(); auto eResult = vcl::test::OutputDeviceTestBitmap::checkTransformedBitmap(aBitmap); @@ -427,6 +475,8 @@ public: void testDrawBitmapExWithAlpha() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestBitmap aOutDevTest; Bitmap aBitmap = aOutDevTest.setupDrawBitmapExWithAlpha(); auto eResult = vcl::test::OutputDeviceTestBitmap::checkBitmapExWithAlpha(aBitmap); @@ -437,6 +487,8 @@ public: void testDrawMask() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestBitmap aOutDevTest; Bitmap aBitmap = aOutDevTest.setupDrawMask(); auto eResult = vcl::test::OutputDeviceTestBitmap::checkMask(aBitmap); @@ -447,6 +499,8 @@ public: void testDrawBlend() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestBitmap aOutDevTest; BitmapEx aBitmapEx = aOutDevTest.setupDrawBlend(); auto eResult = vcl::test::OutputDeviceTestBitmap::checkBlend(aBitmapEx); @@ -457,6 +511,8 @@ public: void testDrawXor() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestAnotherOutDev aOutDevTest; Bitmap aBitmap = aOutDevTest.setupXOR(); auto eResult = vcl::test::OutputDeviceTestAnotherOutDev::checkXOR(aBitmap); @@ -469,6 +525,8 @@ public: { // TODO: This unit test is not executed for macOS unless bitmap scaling is implemented #ifndef MACOSX + if (isWindowsRDP()) + return; ScopedVclPtrInstance<VirtualDevice> device; device->SetOutputSizePixel(Size(16, 16)); device->SetBackground(Wallpaper(COL_WHITE)); @@ -505,6 +563,8 @@ public: void testClipRectangle() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestClip aOutDevTest; Bitmap aBitmap = aOutDevTest.setupClipRectangle(); auto eResult = vcl::test::OutputDeviceTestClip::checkClip(aBitmap); @@ -515,6 +575,8 @@ public: void testClipPolygon() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestClip aOutDevTest; Bitmap aBitmap = aOutDevTest.setupClipPolygon(); auto eResult = vcl::test::OutputDeviceTestClip::checkClip(aBitmap); @@ -525,6 +587,8 @@ public: void testClipPolyPolygon() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestClip aOutDevTest; Bitmap aBitmap = aOutDevTest.setupClipPolyPolygon(); auto eResult = vcl::test::OutputDeviceTestClip::checkClip(aBitmap); @@ -535,6 +599,8 @@ public: void testClipB2DPolyPolygon() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestClip aOutDevTest; Bitmap aBitmap = aOutDevTest.setupClipB2DPolyPolygon(); auto eResult = vcl::test::OutputDeviceTestClip::checkClip(aBitmap); @@ -545,6 +611,8 @@ public: void testDrawOutDev() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestAnotherOutDev aOutDevTest; Bitmap aBitmap = aOutDevTest.setupDrawOutDev(); auto eResult = vcl::test::OutputDeviceTestAnotherOutDev::checkDrawOutDev(aBitmap); @@ -555,6 +623,8 @@ public: void testDashedLine() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestLine aOutDevTest; Bitmap aBitmap = aOutDevTest.setupDashedLine(); auto eResult = vcl::test::OutputDeviceTestLine::checkDashedLine(aBitmap); @@ -565,6 +635,8 @@ public: void testErase() { + if (isWindowsRDP()) + return; { // Create normal virtual device (no alpha). ScopedVclPtr<VirtualDevice> device @@ -630,6 +702,8 @@ public: void testLinearGradient() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestGradient aOutDevTest; Bitmap aBitmap = aOutDevTest.setupLinearGradient(); auto eResult = vcl::test::OutputDeviceTestGradient::checkLinearGradient(aBitmap); @@ -640,6 +714,8 @@ public: void testLinearGradientAngled() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestGradient aOutDevTest; Bitmap aBitmap = aOutDevTest.setupLinearGradientAngled(); auto eResult = vcl::test::OutputDeviceTestGradient::checkLinearGradientAngled(aBitmap); @@ -660,6 +736,8 @@ public: void testLinearGradientIntensity() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestGradient aOutDevTest; Bitmap aBitmap = aOutDevTest.setupLinearGradientIntensity(); auto eResult = vcl::test::OutputDeviceTestGradient::checkLinearGradientIntensity(aBitmap); @@ -670,6 +748,8 @@ public: void testLinearGradientSteps() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestGradient aOutDevTest; Bitmap aBitmap = aOutDevTest.setupLinearGradientSteps(); auto eResult = vcl::test::OutputDeviceTestGradient::checkLinearGradientSteps(aBitmap); @@ -680,6 +760,8 @@ public: void testAxialGradient() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestGradient aOutDevTest; Bitmap aBitmap = aOutDevTest.setupAxialGradient(); auto eResult = vcl::test::OutputDeviceTestGradient::checkAxialGradient(aBitmap); @@ -690,6 +772,8 @@ public: void testRadialGradient() { + if (isWindowsRDP()) + return; vcl::test::OutputDeviceTestGradient aOutDevTest; Bitmap aBitmap = aOutDevTest.setupRadialGradient(); auto eResult = vcl::test::OutputDeviceTestGradient::checkRadialGradient(aBitmap); @@ -713,6 +797,8 @@ public: { // TODO: This unit test is not executed for macOS unless bitmap scaling is implemented #ifndef MACOSX + if (isWindowsRDP()) + return; // Create virtual device with alpha. ScopedVclPtr<VirtualDevice> device = VclPtr<VirtualDevice>::Create(DeviceFormat::DEFAULT, DeviceFormat::DEFAULT); @@ -861,6 +947,8 @@ public: { // TODO: Following unit tests are not executed for macOS unless bitmap scaling is implemented #ifndef MACOSX + if (isWindowsRDP()) + return; // Create virtual device with alpha. ScopedVclPtr<VirtualDevice> device = VclPtr<VirtualDevice>::Create(DeviceFormat::DEFAULT, DeviceFormat::DEFAULT); diff --git a/vcl/qa/cppunit/bitmaprender/BitmapRenderTest.cxx b/vcl/qa/cppunit/bitmaprender/BitmapRenderTest.cxx index a0303833bacd..323c40e11ebf 100644 --- a/vcl/qa/cppunit/bitmaprender/BitmapRenderTest.cxx +++ b/vcl/qa/cppunit/bitmaprender/BitmapRenderTest.cxx @@ -126,6 +126,8 @@ void BitmapRenderTest::testDrawAlphaBitmapEx() { // TODO: This unit test is not executed for macOS unless bitmap scaling is implemented #ifndef MACOSX + if (isWindowsRDP()) + return; ScopedVclPtrInstance<VirtualDevice> pVDev; pVDev->SetOutputSizePixel(Size(8, 8)); pVDev->SetBackground(Wallpaper(COL_WHITE)); |