Re: [Development] Qt 5.5.0 header diff: QtTest.diff

2015-06-08 Thread Marc Mutz
On Monday 08 June 2015 15:29:46 Thiago Macieira wrote:
> On Monday 08 June 2015 15:26:26 Marc Mutz wrote:
> > On Saturday 06 June 2015 10:11:45 Thiago Macieira wrote:
> > > return a QTemporaryDir (which
> > > implies passing in by output parameter)
> >
> > 
> >
> > Or simply return QSharedPointer...
> 
> Right, but no one has done it yet.

https://codereview.qt-project.org/113933

-- 
Marc Mutz  | Senior Software Engineer
KDAB (Deutschland) GmbH & Co.KG, a KDAB Group Company
Tel: +49-30-521325470
KDAB - The Qt Experts
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Qt 5.5.0 header diff: QtTest.diff

2015-06-08 Thread Thiago Macieira
On Monday 08 June 2015 15:26:26 Marc Mutz wrote:
> On Saturday 06 June 2015 10:11:45 Thiago Macieira wrote:
> > return a QTemporaryDir (which
> > implies passing in by output parameter)
> 
> Or simply return QSharedPointer...

Right, but no one has done it yet.
-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Qt 5.5.0 header diff: QtTest.diff

2015-06-08 Thread Oswald Buddenhagen
On Mon, Jun 08, 2015 at 03:26:26PM +0200, Marc Mutz wrote:
> On Saturday 06 June 2015 10:11:45 Thiago Macieira wrote:
> > return a QTemporaryDir (which 
> > implies passing in by output parameter)
> 
> Or simply return QSharedPointer...
> 
smart pointers in the api are not liked by binding authors ...
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Qt 5.5.0 header diff: QtTest.diff

2015-06-08 Thread Marc Mutz
On Saturday 06 June 2015 10:11:45 Thiago Macieira wrote:
> return a QTemporaryDir (which 
> implies passing in by output parameter)

Or simply return QSharedPointer...

-- 
Marc Mutz  | Senior Software Engineer
KDAB (Deutschland) GmbH & Co.KG, a KDAB Group Company
Tel: +49-30-521325470
KDAB - The Qt Experts
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Qt 5.5.0 header diff: QtTest.diff

2015-06-06 Thread Thiago Macieira
On Friday 05 June 2015 10:10:47 Frederik Gladhorn wrote:
> +Q_TESTLIB_EXPORT QString qExtractTestData(const QString &dirName);
>  

This API isn't finished. The function needs to return a QTemporaryDir (which 
implies passing in by output parameter) so that the caller properly cleans up 
the extracted test data.

The rest looks good. I'd have put the qgpu_features function inside the QTest 
namespace, like everything else, though.
-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] Qt 5.5.0 header diff: QtTest.diff

2015-06-05 Thread Frederik Gladhorn
diff --git a/src/testlib/qbenchmark.h b/src/testlib/qbenchmark.h
index de4f9a1..9481e91 100644
--- a/src/testlib/qbenchmark.h
+++ b/src/testlib/qbenchmark.h
@@ -70,7 +70,7 @@ template<> inline char *toString(const QLatin1String &str)
 
 template<> inline char *toString(const QByteArray &ba)
 {
-return QTest::toHexRepresentation(ba.constData(), ba.length());
+return QTest::toPrettyCString(ba.constData(), ba.length());
 }
 
 #ifndef QT_NO_DATESTRING
@@ -274,18 +274,37 @@ inline bool qCompare(quint32 const &t1, quint64 const &t2, const char *actual,
 }
 QT_END_NAMESPACE
 
+#ifdef QT_TESTCASE_BUILDDIR
+#  define QTEST_SET_MAIN_SOURCE_PATH  QTest::setMainSourcePath(__FILE__, QT_TESTCASE_BUILDDIR);
+#else
+#  define QTEST_SET_MAIN_SOURCE_PATH  QTest::setMainSourcePath(__FILE__);
+#endif
+
 #define QTEST_APPLESS_MAIN(TestObject) \
 int main(int argc, char *argv[]) \
 { \
 TestObject tc; \
+QTEST_SET_MAIN_SOURCE_PATH \
 return QTest::qExec(&tc, argc, argv); \
 }
 
 #include 
+#include 
+
+#ifndef QT_NO_OPENGL
+#  define QTEST_ADD_GPU_BLACKLIST_SUPPORT_DEFS \
+extern Q_TESTLIB_EXPORT std::set *(*qgpu_features_ptr)(const QString &); \
+extern Q_GUI_EXPORT std::set *qgpu_features(const QString &);
+#  define QTEST_ADD_GPU_BLACKLIST_SUPPORT \
+qgpu_features_ptr = qgpu_features;
+#else
+#  define QTEST_ADD_GPU_BLACKLIST_SUPPORT_DEFS
+#  define QTEST_ADD_GPU_BLACKLIST_SUPPORT
+#endif
 
 #if defined(QT_WIDGETS_LIB)
 
-#include 
+#include 
 
 #ifdef QT_KEYPAD_NAVIGATION
 #  define QTEST_DISABLE_KEYPAD_NAVIGATION QApplication::setNavigationMode(Qt::NavigationModeNone);
@@ -294,12 +313,17 @@ int main(int argc, char *argv[]) \
 #endif
 
 #define QTEST_MAIN(TestObject) \
+QT_BEGIN_NAMESPACE \
+QTEST_ADD_GPU_BLACKLIST_SUPPORT_DEFS \
+QT_END_NAMESPACE \
 int main(int argc, char *argv[]) \
 { \
 QApplication app(argc, argv); \
 app.setAttribute(Qt::AA_Use96Dpi, true); \
 QTEST_DISABLE_KEYPAD_NAVIGATION \
+QTEST_ADD_GPU_BLACKLIST_SUPPORT \
 TestObject tc; \
+QTEST_SET_MAIN_SOURCE_PATH \
 return QTest::qExec(&tc, argc, argv); \
 }
 
@@ -308,11 +332,16 @@ int main(int argc, char *argv[]) \
 #include 
 
 #define QTEST_MAIN(TestObject) \
+QT_BEGIN_NAMESPACE \
+QTEST_ADD_GPU_BLACKLIST_SUPPORT_DEFS \
+QT_END_NAMESPACE \
 int main(int argc, char *argv[]) \
 { \
 QGuiApplication app(argc, argv); \
 app.setAttribute(Qt::AA_Use96Dpi, true); \
+QTEST_ADD_GPU_BLACKLIST_SUPPORT \
 TestObject tc; \
+QTEST_SET_MAIN_SOURCE_PATH \
 return QTest::qExec(&tc, argc, argv); \
 }
 
@@ -324,6 +353,7 @@ int main(int argc, char *argv[]) \
 QCoreApplication app(argc, argv); \
 app.setAttribute(Qt::AA_Use96Dpi, true); \
 TestObject tc; \
+QTEST_SET_MAIN_SOURCE_PATH \
 return QTest::qExec(&tc, argc, argv); \
 }
 
@@ -335,6 +365,7 @@ int main(int argc, char *argv[]) \
 QCoreApplication app(argc, argv); \
 app.setAttribute(Qt::AA_Use96Dpi, true); \
 TestObject tc; \
+QTEST_SET_MAIN_SOURCE_PATH \
 return QTest::qExec(&tc, argc, argv); \
 }
 
diff --git a/src/testlib/qtest_global.h b/src/testlib/qtest_global.h
index 7bf7dbf..f57d05c 100644
--- a/src/testlib/qtest_global.h
+++ b/src/testlib/qtest_global.h
@@ -49,8 +49,72 @@
 #pragma qt_no_master_include
 #endif
 
+#include 
+#include 
+
 QT_BEGIN_NAMESPACE
 
+namespace QTest
+{
+
+//
+// QSizePolicy & friends:
+//
+
+namespace Internal
+{
+
+inline const char *toString(QSizePolicy::Policy p)
+{
+static const QMetaEnum me = QSizePolicy::staticMetaObject.enumerator(QSizePolicy::staticMetaObject.indexOfEnumerator("Policy"));
+return me.valueToKey(int(p));
+}
+
+inline QByteArray toString(QSizePolicy::ControlTypes ct)
+{
+static const QMetaEnum me = QSizePolicy::staticMetaObject.enumerator(QSizePolicy::staticMetaObject.indexOfEnumerator("ControlTypes"));
+return me.valueToKeys(int(ct));
+}
+
+inline QByteArray toString(QSizePolicy sp)
+{
+static const char comma[] = ", ";
+return QByteArray("QSizePolicy(")
++ Internal::toString(sp.horizontalPolicy()) + comma
++ Internal::toString(sp.verticalPolicy()) + comma
++ QByteArray::number(sp.horizontalStretch()) + comma
++ QByteArray::number(sp.verticalStretch()) + comma
++ Internal::toString(QSizePolicy::ControlTypes(sp.controlType())) + comma
++ "height for width: " + (sp.hasHeightForWidth() ? "yes" : "no") + comma
++ "width for height: " + (sp.hasWidthForHeight() ? "yes" : "no") + comma
++ (sp.retainSizeWhenHidden() ? "" : "don't " ) + "retain size when hidden"
++ ')';
+}
+
+} // namespace Internal
+
+inline char *toString(QSizePolicy::Policy p)
+{
+return qstrdup(Internal::toString(p));
+}
+
+inline char *toString(QSizePolicy::ControlTypes ct)
+{
+return qstrdup(Internal::toString(ct).constData());
+}
+
+inline char *toString(QSizePolicy::ControlType ct)
+{
+return toString(QSizePolicy::ControlTypes(ct));
+}