summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2010-10-01 03:07:00 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2010-10-01 03:07:00 (GMT)
commitfc944ca0cde725d263b8f28651058b3f90815de9 (patch)
tree1449a6d1c5501a5aa7b6bb29f9cbd36ef960c1d0 /tests
parent0492f2249395ed4f8d86775aee18ffeb195b30b4 (diff)
parent6d20831a82a6a19ea841720e339f5f86623a9dc2 (diff)
downloadQt-fc944ca0cde725d263b8f28651058b3f90815de9.zip
Qt-fc944ca0cde725d263b8f28651058b3f90815de9.tar.gz
Qt-fc944ca0cde725d263b8f28651058b3f90815de9.tar.bz2
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: (24 commits) Stabilize tst_QGraphicsWidget::QT_BUG_13865_doublePaintWhenAddingASubItem Fixed accessing freed memory in raster engine. Build fix for -qtnamespace. Fixed parsing of SVGs with absolute font sizes. Moving QPdf::stripSpecialCharacter to fontengine Revert "Fix (implement!) hfw/wfh in QGridLayoutEngine" Fixed a layout issue where you could get NaN as dimensions QTextCodec: Fix valgrind warning when using QTextCodec in destructions functions Fix double painting when adding an item into a linear layout Fixed antialiased rasterization bug in raster engine. Fixed potential crash when loading corrupt GIFs. Work around an ATI driver problem with mutli-sampled pbuffers. tst_qstatemachine.cpp: fix compilation with Sun Studio Fixed regression in clipping.qps autotest on 64-bit. Fixed crash when using Qt::WA_DeleteOnClose on a QPrintDialog on Mac. Fixed performance regression in curve stroking. Don't disable texture_from_pixmap on GLX/X11 by default. Avoid creating copy of an image in memory when storing as png Doc update for the support of MSVC 2010 64-bit fix documentation of drawText(int, int, int, int, ... ...
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp364
-rw-r--r--tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp41
-rw-r--r--tests/auto/qimagereader/tst_qimagereader.cpp43
-rw-r--r--tests/auto/qstatemachine/tst_qstatemachine.cpp2
-rw-r--r--tests/auto/qtextcodec/tst_qtextcodec.cpp9
5 files changed, 98 insertions, 361 deletions
diff --git a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp
index 03c1d5b..5b03767 100644
--- a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp
+++ b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp
@@ -107,13 +107,12 @@ private slots:
void avoidRecursionInInsertItem();
void styleInfoLeak();
void task236367_maxSizeHint();
- void heightForWidth();
};
class RectWidget : public QGraphicsWidget
{
public:
- RectWidget(QGraphicsItem *parent = 0) : QGraphicsWidget(parent), m_fnConstraint(0) {}
+ RectWidget(QGraphicsItem *parent = 0) : QGraphicsWidget(parent){}
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
@@ -126,12 +125,9 @@ public:
QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const
{
- if (constraint.width() < 0 && constraint.height() < 0 && m_sizeHints[which].isValid()) {
+ if (m_sizeHints[which].isValid()) {
return m_sizeHints[which];
}
- if (m_fnConstraint) {
- return m_fnConstraint(which, constraint);
- }
return QGraphicsWidget::sizeHint(which, constraint);
}
@@ -140,13 +136,7 @@ public:
updateGeometry();
}
- void setConstraintFunction(QSizeF (*fnConstraint)(Qt::SizeHint, const QSizeF &)) {
- m_fnConstraint = fnConstraint;
- }
-
QSizeF m_sizeHints[Qt::NSizeHints];
- QSizeF (*m_fnConstraint)(Qt::SizeHint, const QSizeF &);
-
};
struct ItemDesc
@@ -156,8 +146,7 @@ struct ItemDesc
m_rowSpan(1),
m_colSpan(1),
m_sizePolicy(QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred)),
- m_align(0),
- m_fnConstraint(0)
+ m_align(0)
{
}
@@ -224,20 +213,8 @@ struct ItemDesc
return (*this);
}
- ItemDesc &heightForWidth(QSizeF (*fnConstraint)(Qt::SizeHint, const QSizeF &)) {
- m_fnConstraint = fnConstraint;
- m_constraintOrientation = Qt::Vertical;
- return (*this);
- }
-
void apply(QGraphicsGridLayout *layout, QGraphicsWidget *item) {
- QSizePolicy sp = m_sizePolicy;
- if (m_fnConstraint) {
- sp.setHeightForWidth(m_constraintOrientation == Qt::Vertical);
- //sp.setWidthForHeight(m_constraintOrientation == Qt::Horizontal);
- }
-
- item->setSizePolicy(sp);
+ item->setSizePolicy(m_sizePolicy);
for (int i = 0; i < Qt::NSizeHints; ++i) {
if (!m_sizes[i].isValid())
continue;
@@ -256,7 +233,6 @@ struct ItemDesc
break;
}
}
-
layout->addItem(item, m_pos.first, m_pos.second, m_rowSpan, m_colSpan);
layout->setAlignment(item, m_align);
}
@@ -264,7 +240,6 @@ struct ItemDesc
void apply(QGraphicsGridLayout *layout, RectWidget *item) {
for (int i = 0; i < Qt::NSizeHints; ++i)
item->setSizeHint((Qt::SizeHint)i, m_sizeHints[i]);
- item->setConstraintFunction(m_fnConstraint);
apply(layout, static_cast<QGraphicsWidget*>(item));
}
@@ -276,9 +251,6 @@ struct ItemDesc
QSizeF m_sizeHints[Qt::NSizeHints];
QSizeF m_sizes[Qt::NSizeHints];
Qt::Alignment m_align;
-
- Qt::Orientation m_constraintOrientation;
- QSizeF (*m_fnConstraint)(Qt::SizeHint, const QSizeF &);
};
typedef QList<ItemDesc> ItemList;
@@ -2144,17 +2116,6 @@ void tst_QGraphicsGridLayout::alignment2()
delete widget;
}
-static QSizeF hfw1(Qt::SizeHint, const QSizeF &constraint)
-{
- QSizeF result(constraint);
- if (constraint.width() < 0 && constraint.height() < 0) {
- return QSizeF(50, 400);
- } else if (constraint.width() >= 0) {
- result.setHeight(20000./constraint.width());
- }
- return result;
-}
-
void tst_QGraphicsGridLayout::geometries_data()
{
@@ -2184,186 +2145,6 @@ void tst_QGraphicsGridLayout::geometries_data()
<< QRectF(0, 0, 60,10) << QRectF(0, 10, 60,10)
);
- // change layout height and verify
- QTest::newRow("hfw-h401") << (ItemList()
- << ItemDesc(0,0)
- .minSize(QSizeF(1,1))
- .preferredSize(QSizeF(50,10))
- .maxSize(QSizeF(100, 100))
- << ItemDesc(0,1)
- .minSize(QSizeF(1,1))
- .preferredSize(QSizeF(50,10))
- .maxSize(QSizeF(100, 100))
- << ItemDesc(1,0)
- .minSize(QSizeF(1,1))
- .preferredSize(QSizeF(50,10))
- .maxSize(QSizeF(100, 100))
- << ItemDesc(1,1)
- .minSize(QSizeF(40,40))
- .preferredSize(QSizeF(50,400))
- .maxSize(QSizeF(500, 500))
- .heightForWidth(hfw1)
- )
- << QSizeF(100, 401)
- << (RectList()
- << QRectF(0, 0, 50, 1) << QRectF(50, 0, 50, 1)
- << QRectF(0, 1, 50,100) << QRectF(50, 1, 50,400)
- );
-
-
- QTest::newRow("hfw-h408") << (ItemList()
- << ItemDesc(0,0)
- .minSize(QSizeF(1,1))
- .preferredSize(QSizeF(50,10))
- .maxSize(QSizeF(100, 100))
- << ItemDesc(0,1)
- .minSize(QSizeF(1,1))
- .preferredSize(QSizeF(50,10))
- .maxSize(QSizeF(100, 100))
- << ItemDesc(1,0)
- .minSize(QSizeF(1,1))
- .preferredSize(QSizeF(50,10))
- .maxSize(QSizeF(100, 100))
- << ItemDesc(1,1)
- .minSize(QSizeF(40,40))
- .preferredSize(QSizeF(50,400))
- .maxSize(QSizeF(500, 500))
- .heightForWidth(hfw1)
- )
- << QSizeF(100, 408)
- << (RectList()
- << QRectF(0, 0, 50, 8) << QRectF(50, 0, 50, 8)
- << QRectF(0, 8, 50,100) << QRectF(50, 8, 50,400)
- );
-
- QTest::newRow("hfw-h410") << (ItemList()
- << ItemDesc(0,0)
- .minSize(QSizeF(1,1))
- .preferredSize(QSizeF(50,10))
- .maxSize(QSizeF(100, 100))
- << ItemDesc(0,1)
- .minSize(QSizeF(1,1))
- .preferredSize(QSizeF(50,10))
- .maxSize(QSizeF(100, 100))
- << ItemDesc(1,0)
- .minSize(QSizeF(1,1))
- .preferredSize(QSizeF(50,10))
- .maxSize(QSizeF(100, 100))
- << ItemDesc(1,1)
- .minSize(QSizeF(40,40))
- .preferredSize(QSizeF(50,400))
- .maxSize(QSizeF(500, 500))
- .heightForWidth(hfw1)
- )
- << QSizeF(100, 410)
- << (RectList()
- << QRectF(0, 0, 50,10) << QRectF(50, 0, 50,10)
- << QRectF(0, 10, 50,100) << QRectF(50, 10, 50,400)
- );
-
- QTest::newRow("hfw-h470") << (ItemList()
- << ItemDesc(0,0)
- .minSize(QSizeF(1,1))
- .preferredSize(QSizeF(50,10))
- .maxSize(QSizeF(100, 100))
- << ItemDesc(0,1)
- .minSize(QSizeF(1,1))
- .preferredSize(QSizeF(50,10))
- .maxSize(QSizeF(100, 100))
- << ItemDesc(1,0)
- .minSize(QSizeF(1,1))
- .preferredSize(QSizeF(50,10))
- .maxSize(QSizeF(100, 100))
- << ItemDesc(1,1)
- .minSize(QSizeF(40,40))
- .preferredSize(QSizeF(50,400))
- .maxSize(QSizeF(500, 500))
- .heightForWidth(hfw1)
- )
- << QSizeF(100, 470)
- << (RectList()
- << QRectF(0, 0, 50,70) << QRectF(50, 0, 50,70)
- << QRectF(0, 70, 50,100) << QRectF(50, 70, 50,400)
- );
-
-
- // change layout width and verify
- QTest::newRow("hfw-w100") << (ItemList()
- << ItemDesc(0,0)
- .minSize(QSizeF(1,1))
- .preferredSize(QSizeF(50,10))
- .maxSize(QSizeF(100, 100))
- << ItemDesc(0,1)
- .minSize(QSizeF(1,1))
- .preferredSize(QSizeF(50,10))
- .maxSize(QSizeF(100, 100))
- << ItemDesc(1,0)
- .minSize(QSizeF(1,1))
- .preferredSize(QSizeF(50,10))
- .maxSize(QSizeF(100, 100))
- << ItemDesc(1,1)
- .minSize(QSizeF(40,40))
- .preferredSize(QSizeF(50,400))
- .maxSize(QSizeF(5000, 5000))
- .heightForWidth(hfw1)
- )
- << QSizeF(100, 401)
- << (RectList()
- << QRectF( 0, 0, 50, 1) << QRectF( 50, 0, 50, 1)
- << QRectF( 0, 1, 50, 100) << QRectF( 50, 1, 50, 400)
- );
-
- QTest::newRow("hfw-w160") << (ItemList()
- << ItemDesc(0,0)
- .minSize(QSizeF(1,1))
- .preferredSize(QSizeF(50,10))
- .maxSize(QSizeF(100, 100))
- << ItemDesc(0,1)
- .minSize(QSizeF(1,1))
- .preferredSize(QSizeF(50,10))
- .maxSize(QSizeF(100, 100))
- << ItemDesc(1,0)
- .minSize(QSizeF(1,1))
- .preferredSize(QSizeF(50,10))
- .maxSize(QSizeF(100, 100))
- << ItemDesc(1,1)
- .minSize(QSizeF(40,40))
- .preferredSize(QSizeF(50,400))
- .maxSize(QSizeF(5000, 5000))
- .heightForWidth(hfw1)
- )
- << QSizeF(160, 401)
- << (RectList()
- << QRectF( 0, 0, 80, 100) << QRectF( 80, 0, 80, 100)
- << QRectF( 0, 100, 80, 100) << QRectF( 80, 100, 80, 250)
- );
-
-
- QTest::newRow("hfw-w500") << (ItemList()
- << ItemDesc(0,0)
- .minSize(QSizeF(1,1))
- .preferredSize(QSizeF(50,10))
- .maxSize(QSizeF(100, 100))
- << ItemDesc(0,1)
- .minSize(QSizeF(1,1))
- .preferredSize(QSizeF(50,10))
- .maxSize(QSizeF(100, 100))
- << ItemDesc(1,0)
- .minSize(QSizeF(1,1))
- .preferredSize(QSizeF(50,10))
- .maxSize(QSizeF(100, 100))
- << ItemDesc(1,1)
- .minSize(QSizeF(40,40))
- .preferredSize(QSizeF(50,400))
- .maxSize(QSizeF(5000, 5000))
- .heightForWidth(hfw1)
- )
- << QSizeF(500, 401)
- << (RectList()
- << QRectF( 0, 0, 100, 100) << QRectF(100, 0, 100, 100)
- << QRectF( 0, 100, 100, 100) << QRectF(100, 100, 400, 50)
- );
-
}
void tst_QGraphicsGridLayout::geometries()
@@ -2434,143 +2215,6 @@ void tst_QGraphicsGridLayout::task236367_maxSizeHint()
QCOMPARE(widget->size(), QSizeF(w, h));
}
-/*
-static qreal hfw(qreal w)
-{
- if (w == 0)
- return 20000;
- return 20000/w;
-}
-*/
-static QSizeF hfw(Qt::SizeHint /*which*/, const QSizeF &constraint)
-{
- QSizeF result(constraint);
- const qreal cw = constraint.width();
- const qreal ch = constraint.height();
- if (cw < 0 && ch < 0) {
- return QSizeF(200, 100);
- } else if (cw >= 0) {
- result.setHeight(20000./cw);
- } else if (cw == 0) {
- result.setHeight(20000);
- } else if (ch >= 0) {
- result.setWidth(20000./ch);
- } else if (ch == 0) {
- result.setWidth(20000);
- }
-
- return result;
-}
-
-static qreal growthFactorBelowPreferredSize(qreal desired, qreal sumAvailable, qreal sumDesired)
-{
- Q_ASSERT(sumDesired != 0.0);
- return desired * qPow(sumAvailable / sumDesired, desired / sumDesired);
-}
-
-static void expectedWidth(qreal minSize1, qreal prefSize1,
- qreal minSize2, qreal prefSize2,
- qreal targetSize, qreal *width1, qreal *width2)
-{
- qreal sumAvail,factor1,factor2;
- // stretch behaviour is different below and above preferred size...
- if (targetSize < prefSize1 + prefSize2) {
- sumAvail = targetSize - minSize1 - minSize2;
- const qreal desired1 = prefSize1 - minSize1;
- const qreal desired2 = prefSize2 - minSize2;
- const qreal sumDesired = desired1 + desired2;
- factor1 = growthFactorBelowPreferredSize(desired1, sumAvail, sumDesired);
- factor2 = growthFactorBelowPreferredSize(desired2, sumAvail, sumDesired);
- const qreal sumFactors = factor1 + factor2;
- *width1 = sumAvail*factor1/sumFactors + minSize1;
- *width2 = sumAvail*factor2/sumFactors + minSize2;
- } else {
- sumAvail = targetSize - prefSize1 - prefSize2;
- factor1 = prefSize1;
- factor2 = prefSize2;
- const qreal sumFactors = factor1 + factor2;
- *width1 = sumAvail*factor1/sumFactors + prefSize1;
- *width2 = sumAvail*factor2/sumFactors + prefSize2;
- }
-}
-
-
-bool qFuzzyCompare(const QSizeF &a, const QSizeF &b)
-{
- return qFuzzyCompare(a.width(), b.width()) && qFuzzyCompare(a.height(), b.height());
-}
-
-void tst_QGraphicsGridLayout::heightForWidth()
-{
- QGraphicsWidget *widget = new QGraphicsWidget;
- QGraphicsGridLayout *layout = new QGraphicsGridLayout;
- widget->setLayout(layout);
- layout->setContentsMargins(0, 0, 0, 0);
- layout->setSpacing(0);
- RectWidget *w00 = new RectWidget;
- w00->setSizeHint(Qt::MinimumSize, QSizeF(1,1));
- w00->setSizeHint(Qt::PreferredSize, QSizeF(10,10));
- w00->setSizeHint(Qt::MaximumSize, QSizeF(100,100));
- layout->addItem(w00, 0, 0);
-
- RectWidget *w01 = new RectWidget;
- w01->setSizeHint(Qt::MinimumSize, QSizeF(1,1));
- w01->setSizeHint(Qt::PreferredSize, QSizeF(10,10));
- w01->setSizeHint(Qt::MaximumSize, QSizeF(100,100));
- layout->addItem(w01, 0, 1);
-
- RectWidget *w10 = new RectWidget;
- w10->setSizeHint(Qt::MinimumSize, QSizeF(1,1));
- w10->setSizeHint(Qt::PreferredSize, QSizeF(10,10));
- w10->setSizeHint(Qt::MaximumSize, QSizeF(100,100));
- layout->addItem(w10, 1, 0);
-
- RectWidget *w11 = new RectWidget;
- w11->setSizeHint(Qt::MinimumSize, QSizeF(1,1));
- w11->setSizeHint(Qt::MaximumSize, QSizeF(30000,30000));
- w11->setConstraintFunction(hfw);
- QSizePolicy sp(QSizePolicy::Preferred, QSizePolicy::Preferred);
- sp.setHeightForWidth(true);
- w11->setSizePolicy(sp);
- layout->addItem(w11, 1, 1);
-
- QSizeF prefSize = layout->effectiveSizeHint(Qt::PreferredSize, QSizeF(-1, -1));
- QCOMPARE(prefSize, QSizeF(10+200, 10+100));
-
- QCOMPARE(layout->effectiveSizeHint(Qt::MinimumSize, QSizeF(2, -1)), QSizeF(2, 20001));
- QCOMPARE(layout->effectiveSizeHint(Qt::PreferredSize, QSizeF(2, -1)), QSizeF(2, 20010));
- QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(2, -1)), QSizeF(2, 20100));
- qreal width1;
- qreal width2;
- expectedWidth(1, 10, 1, 200, 20, &width1, &width2);
- QSizeF expectedSize = hfw(Qt::MinimumSize, QSizeF(width2, -1)) + QSizeF(width1, 1);
- QCOMPARE(layout->effectiveSizeHint(Qt::MinimumSize, QSizeF(20, -1)), expectedSize);
- expectedSize.rheight()+=9;
- QCOMPARE(layout->effectiveSizeHint(Qt::PreferredSize, QSizeF(20, -1)), expectedSize);
- expectedSize.rheight()+=90;
- QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(20, -1)), expectedSize);
-
- expectedWidth(1, 10, 1, 200, 300, &width1, &width2);
- expectedSize = hfw(Qt::MinimumSize, QSizeF(width2, -1)) + QSizeF(width1, 1);
- QCOMPARE(layout->effectiveSizeHint(Qt::MinimumSize, QSizeF(300, -1)), expectedSize);
- expectedSize.rheight()+=9;
- QCOMPARE(layout->effectiveSizeHint(Qt::PreferredSize, QSizeF(300, -1)), expectedSize);
- // the height of the hfw widget is shorter than the one to the left, which is 100, so
- // the total height of the last row is 100 (which leaves the layout height to be 200)
- QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(300, -1)), QSizeF(300, 200));
-
- // the hfw item is shorter than the item to the left
- expectedWidth(1, 10, 1, 200, 500, &width1, &width2);
- expectedSize = hfw(Qt::MinimumSize, QSizeF(width2, -1)) + QSizeF(width1, 1);
- QCOMPARE(layout->effectiveSizeHint(Qt::MinimumSize, QSizeF(500, -1)), expectedSize);
- expectedSize.rheight()+=9;
- QCOMPARE(layout->effectiveSizeHint(Qt::PreferredSize, QSizeF(500, -1)), expectedSize);
- // the height of the hfw widget is shorter than the one to the left, which is 100, so
- // the total height of the last row is 100 (which leaves the layout height to be 200)
- QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(500, -1)), QSizeF(500, 200));
-
-}
-
QTEST_MAIN(tst_QGraphicsGridLayout)
#include "tst_qgraphicsgridlayout.moc"
diff --git a/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp b/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp
index ddc4f73..5891075 100644
--- a/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp
+++ b/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp
@@ -184,6 +184,7 @@ private slots:
void task250119_shortcutContext();
void QT_BUG_6544_tabFocusFirstUnsetWhenRemovingItems();
void QT_BUG_12056_tabFocusFirstUnsetWhenRemovingItems();
+ void QT_BUG_13865_doublePaintWhenAddingASubItem();
};
@@ -3321,6 +3322,46 @@ void tst_QGraphicsWidget::QT_BUG_12056_tabFocusFirstUnsetWhenRemovingItems()
//This should not crash
}
+
+struct GreenWidget : public QGraphicsWidget
+{
+ GreenWidget() : count(0)
+ {
+ }
+
+ void paint ( QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * )
+ {
+ count++;
+ painter->setPen(Qt::green);
+ painter->drawRect(option->rect.adjusted(0,0,-1,-1));
+ }
+
+ int count;
+};
+
+void tst_QGraphicsWidget::QT_BUG_13865_doublePaintWhenAddingASubItem()
+{
+ QGraphicsScene scene;
+ QGraphicsView view(&scene);
+ QGraphicsWidget *widget = new QGraphicsWidget;
+ widget->resize(100, 100);
+ scene.addItem(widget);
+ QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(widget);
+
+ view.show();
+ QTest::qWaitForWindowShown(&view);
+ QApplication::processEvents();
+
+
+ GreenWidget *sub = new GreenWidget;
+ layout->addItem(sub);
+
+ QTest::qWait(100);
+ QCOMPARE(sub->count, 1); //it should only be painted once
+
+}
+
+
QTEST_MAIN(tst_QGraphicsWidget)
#include "tst_qgraphicswidget.moc"
diff --git a/tests/auto/qimagereader/tst_qimagereader.cpp b/tests/auto/qimagereader/tst_qimagereader.cpp
index 3bee5d9..4b4bdd6 100644
--- a/tests/auto/qimagereader/tst_qimagereader.cpp
+++ b/tests/auto/qimagereader/tst_qimagereader.cpp
@@ -178,6 +178,8 @@ private slots:
void testIgnoresFormatAndExtension_data();
void testIgnoresFormatAndExtension();
+ void saveFormat_data();
+ void saveFormat();
};
static const QLatin1String prefix(SRCDIR "/images/");
@@ -1905,5 +1907,46 @@ void tst_QImageReader::testIgnoresFormatAndExtension()
}
}
+
+void tst_QImageReader::saveFormat_data()
+{
+ QTest::addColumn<QImage::Format>("format");
+
+ QTest::newRow("Format_Mono") << QImage::Format_Mono;
+ QTest::newRow("Format_MonoLSB") << QImage::Format_MonoLSB;
+ QTest::newRow("Format_Indexed8") << QImage::Format_Indexed8;
+ QTest::newRow("Format_RGB32") << QImage::Format_RGB32;
+ QTest::newRow("Format_ARGB32") << QImage::Format_ARGB32;
+ QTest::newRow("Format_ARGB32_Premultiplied") << QImage::Format_ARGB32_Premultiplied;
+ QTest::newRow("Format_RGB16") << QImage::Format_RGB16;
+ QTest::newRow("Format_ARGB8565_Premultiplied") << QImage::Format_ARGB8565_Premultiplied;
+ QTest::newRow("Format_RGB666") << QImage::Format_RGB666;
+ QTest::newRow("Format_ARGB6666_Premultiplied") << QImage::Format_ARGB6666_Premultiplied;
+ QTest::newRow("Format_RGB555") << QImage::Format_RGB555;
+ QTest::newRow("Format_ARGB8555_Premultiplied") << QImage::Format_ARGB8555_Premultiplied;
+ QTest::newRow("Format_RGB888") << QImage::Format_RGB888;
+ QTest::newRow("Format_RGB444") << QImage::Format_RGB444;
+ QTest::newRow("Format_ARGB4444_Premultiplied") << QImage::Format_ARGB4444_Premultiplied;
+}
+
+void tst_QImageReader::saveFormat()
+{
+ QFETCH(QImage::Format, format);
+
+ QImage orig(":/images/kollada.png");
+
+ QImage converted = orig.convertToFormat(format);
+ QBuffer buf;
+ buf.open(QIODevice::WriteOnly);
+ QVERIFY(converted.save(&buf, "png"));
+ buf.close();
+ QImage stored = QImage::fromData(buf.buffer(), "png");
+
+ stored = stored.convertToFormat(QImage::Format_ARGB32);
+ converted = converted.convertToFormat(QImage::Format_ARGB32);
+ QCOMPARE(stored, converted);
+}
+
+
QTEST_MAIN(tst_QImageReader)
#include "tst_qimagereader.moc"
diff --git a/tests/auto/qstatemachine/tst_qstatemachine.cpp b/tests/auto/qstatemachine/tst_qstatemachine.cpp
index 2bf76e7..f6aee88 100644
--- a/tests/auto/qstatemachine/tst_qstatemachine.cpp
+++ b/tests/auto/qstatemachine/tst_qstatemachine.cpp
@@ -1112,7 +1112,7 @@ void tst_QStateMachine::machineWithParent()
QObject object;
QStateMachine *machine = new QStateMachine(&object);
QCOMPARE(machine->parent(), &object);
- QCOMPARE(machine->parentState(), (QObject*)0);
+ QCOMPARE(machine->parentState(), static_cast<QState*>(0));
}
void tst_QStateMachine::addAndRemoveState()
diff --git a/tests/auto/qtextcodec/tst_qtextcodec.cpp b/tests/auto/qtextcodec/tst_qtextcodec.cpp
index cc41591..3d8f1a3 100644
--- a/tests/auto/qtextcodec/tst_qtextcodec.cpp
+++ b/tests/auto/qtextcodec/tst_qtextcodec.cpp
@@ -2236,6 +2236,15 @@ void tst_QTextCodec::moreToFromUnicode()
QCOMPARE(testData, cStr);
}
+struct DontCrashAtExit {
+ ~DontCrashAtExit() {
+ QTextCodec *c = QTextCodec::codecForName("utf8");
+ if (c)
+ c->toUnicode("azerty");
+
+ }
+} dontCrashAtExit;
+
QTEST_MAIN(tst_QTextCodec)
#include "tst_qtextcodec.moc"