summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-12-13 00:00:35 +0000
committerThe Qt Project <gerrit-noreply@qt-project.org>2018-12-13 02:30:54 +0000
commit4e2e7078b80dc587414661046a944c97581c1afb (patch)
tree5f470f9c73e581da7ed97d891700f1673937b4c3 /tests/auto/gui
parentfc2ec95587c431b1916ec5590b7ef634be96c985 (diff)
parentad4f359f805cdb1f1ed4745165090cccfcf11441 (diff)
Merge "Merge remote-tracking branch 'origin/5.12' into dev" into refs/staging/dev
Diffstat (limited to 'tests/auto/gui')
-rw-r--r--tests/auto/gui/image/qimage/tst_qimage.cpp14
-rw-r--r--tests/auto/gui/painting/qpainter/tst_qpainter.cpp16
2 files changed, 30 insertions, 0 deletions
diff --git a/tests/auto/gui/image/qimage/tst_qimage.cpp b/tests/auto/gui/image/qimage/tst_qimage.cpp
index 2e2cb52b3e..361055ce67 100644
--- a/tests/auto/gui/image/qimage/tst_qimage.cpp
+++ b/tests/auto/gui/image/qimage/tst_qimage.cpp
@@ -233,6 +233,7 @@ private slots:
#if defined(Q_OS_WIN) && !defined(Q_OS_WINRT)
void toWinHBITMAP_data();
void toWinHBITMAP();
+ void fromMonoHBITMAP();
#endif // Q_OS_WIN && !Q_OS_WINRT
private:
@@ -3659,6 +3660,19 @@ void tst_QImage::toWinHBITMAP()
DeleteDC(bitmapDc);
ReleaseDC(0, displayDc);
}
+
+void tst_QImage::fromMonoHBITMAP() // QTBUG-72343, corruption for mono bitmaps
+{
+ enum : int { width = 32, height = 32, size = width * height / 8 }; // 32x32 mono bitmap
+ char bitmapData[size];
+ memset(bitmapData, 0, size);
+ const HBITMAP hbitmap = CreateBitmap(width, height, /* planes */ 1, /* bitcount */ 1, bitmapData);
+ const QImage image = qt_imageFromWinHBITMAP(hbitmap);
+ QCOMPARE(image.size(), QSize(width, height));
+ QCOMPARE(image.scanLine(0)[0], 0u);
+ DeleteObject(hbitmap);
+}
+
#endif // Q_OS_WIN && !Q_OS_WINRT
QTEST_GUILESS_MAIN(tst_QImage)
diff --git a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
index 9bf9e99bf9..bc0baed15c 100644
--- a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
+++ b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
@@ -299,6 +299,8 @@ private slots:
void fillPolygon();
+ void drawImageAtPointF();
+
private:
void fillData();
void setPenColor(QPainter& p);
@@ -5292,6 +5294,20 @@ void tst_QPainter::fillPolygon()
}
}
+void tst_QPainter::drawImageAtPointF()
+{
+ // Just test we do not crash
+ QImage image1(10, 10, QImage::Format_RGB32);
+ QImage image2(200, 200, QImage::Format_RGB32);
+
+ QPainter paint(&image2);
+ paint.setClipRect(97, 46, 14, 14);
+ paint.setCompositionMode(QPainter::CompositionMode_Source);
+ paint.drawImage(QPointF(96, std::numeric_limits<int>::max()), image1);
+ paint.drawImage(QPointF(std::numeric_limits<int>::min(), 48), image1);
+ paint.end();
+}
+
QTEST_MAIN(tst_QPainter)
#include "tst_qpainter.moc"