summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/kernel
diff options
context:
space:
mode:
authorKent Hansen <kent.hansen@nokia.com>2012-03-21 14:06:43 +0100
committerQt by Nokia <qt-info@nokia.com>2012-03-21 18:55:27 +0100
commitb8d71ed60ba57142237555edb97d4cc7d3675b5c (patch)
tree3058486e0adc3fafed4b89727ff949823cf9aeaa /tests/auto/corelib/kernel
parente2502e1a06fbb15a8d0abe8ac1be5e6dec1e1152 (diff)
Fix QMetaObject::normalizedType() for "void" argument
Since the introduction of QMetaType::UnknownType, void is a proper meta-type, and the normalized form of "void" should be "void", not an empty string. Add more tests to ensure that we do remove "void" in the one case where it actually should be removed (e.g. "foo(void)"). Change-Id: I72dc2d24da67cf52da00c678f50213cff1b92e25 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
Diffstat (limited to 'tests/auto/corelib/kernel')
-rw-r--r--tests/auto/corelib/kernel/qmetamethod/tst_qmetamethod.cpp10
-rw-r--r--tests/auto/corelib/kernel/qmetaobject/tst_qmetaobject.cpp14
-rw-r--r--tests/auto/corelib/kernel/qobject/tst_qobject.cpp3
3 files changed, 27 insertions, 0 deletions
diff --git a/tests/auto/corelib/kernel/qmetamethod/tst_qmetamethod.cpp b/tests/auto/corelib/kernel/qmetamethod/tst_qmetamethod.cpp
index f44a671180..0285dd0216 100644
--- a/tests/auto/corelib/kernel/qmetamethod/tst_qmetamethod.cpp
+++ b/tests/auto/corelib/kernel/qmetamethod/tst_qmetamethod.cpp
@@ -114,6 +114,7 @@ public slots:
void voidSlotNoParameterNames(bool, int);
signals:
void voidSignal();
+ void voidSignalVoid(void);
void voidSignalInt(int voidSignalIntArg);
void voidSignalQReal(qreal voidSignalQRealArg);
void voidSignalQString(const QString &voidSignalQStringArg);
@@ -230,6 +231,15 @@ void tst_QMetaMethod::method_data()
<< QMetaMethod::Public
<< QMetaMethod::Constructor;
+ QTest::newRow("voidSignalVoid")
+ << QByteArray("voidSignalVoid()")
+ << int(QMetaType::Void) << QByteArray("")
+ << QList<int>()
+ << QList<QByteArray>()
+ << QList<QByteArray>()
+ << QMetaMethod::Protected
+ << QMetaMethod::Signal;
+
QTest::newRow("voidSignalInt")
<< QByteArray("voidSignalInt(int)")
<< int(QMetaType::Void) << QByteArray("")
diff --git a/tests/auto/corelib/kernel/qmetaobject/tst_qmetaobject.cpp b/tests/auto/corelib/kernel/qmetaobject/tst_qmetaobject.cpp
index b6b68338cd..5cf28b5141 100644
--- a/tests/auto/corelib/kernel/qmetaobject/tst_qmetaobject.cpp
+++ b/tests/auto/corelib/kernel/qmetaobject/tst_qmetaobject.cpp
@@ -816,9 +816,22 @@ void tst_QMetaObject::normalizedSignature_data()
QTest::newRow("function") << "void foo()" << "void foo()";
QTest::newRow("spaces") << " void foo( ) " << "void foo()";
+ QTest::newRow("void") << "void foo(void)" << "void foo()";
+ QTest::newRow("void spaces") << "void foo( void )" << "void foo()";
+ QTest::newRow("void*") << "void foo(void*)" << "void foo(void*)";
+ QTest::newRow("void* spaces") << "void foo( void * )" << "void foo(void*)";
+ QTest::newRow("function ptr") << "void foo(void(*)(void))" << "void foo(void(*)())";
+ QTest::newRow("function ptr spaces") << "void foo( void ( * ) ( void ))" << "void foo(void(*)())";
+ QTest::newRow("function ptr void*") << "void foo(void(*)(void*))" << "void foo(void(*)(void*))";
+ QTest::newRow("function ptr void* spaces") << "void foo( void ( * ) ( void * ))" << "void foo(void(*)(void*))";
QTest::newRow("template args") << " void foo( QMap<a, a>, QList<b>) "
<< "void foo(QMap<a,a>,QList<b>)";
+ QTest::newRow("void template args") << " void foo( Foo<void>, Bar<void> ) "
+ << "void foo(Foo<void>,Bar<void>)";
+ QTest::newRow("void* template args") << " void foo( Foo<void*>, Bar<void *> ) "
+ << "void foo(Foo<void*>,Bar<void*>)";
QTest::newRow("rettype") << "QList<int, int> foo()" << "QList<int,int>foo()";
+ QTest::newRow("rettype void template") << "Foo<void> foo()" << "Foo<void>foo()";
QTest::newRow("const rettype") << "const QString *foo()" << "const QString*foo()";
QTest::newRow("const ref") << "const QString &foo()" << "const QString&foo()";
QTest::newRow("reference") << "QString &foo()" << "QString&foo()";
@@ -877,6 +890,7 @@ void tst_QMetaObject::normalizedType_data()
QTest::newRow("struct") << "const struct foo*" << "const foo*";
QTest::newRow("struct2") << "struct foo const*" << "const foo*";
QTest::newRow("enum") << "enum foo" << "foo";
+ QTest::newRow("void") << "void" << "void";
}
void tst_QMetaObject::normalizedType()
diff --git a/tests/auto/corelib/kernel/qobject/tst_qobject.cpp b/tests/auto/corelib/kernel/qobject/tst_qobject.cpp
index c2ded70d80..fa6cf92460 100644
--- a/tests/auto/corelib/kernel/qobject/tst_qobject.cpp
+++ b/tests/auto/corelib/kernel/qobject/tst_qobject.cpp
@@ -165,6 +165,7 @@ signals:
void signal3();
void signal4();
QT_MOC_COMPAT void signal5();
+ void signal6(void);
public slots:
void aPublicSlot() { aPublicSlotCalled++; }
@@ -824,6 +825,8 @@ void tst_QObject::connectDisconnectNotify_data()
QTest::newRow("combo2") << SIGNAL( signal2(void) ) << SLOT( slot2( ) );
QTest::newRow("combo3") << SIGNAL( signal3( ) ) << SLOT( slot3(void) );
QTest::newRow("combo4") << SIGNAL( signal4( void ) )<< SLOT( slot4( void ) );
+ QTest::newRow("combo5") << SIGNAL( signal6( void ) ) << SLOT( slot4() );
+ QTest::newRow("combo6") << SIGNAL( signal6() ) << SLOT( slot4() );
}
void tst_QObject::connectDisconnectNotify()