debugger: work on manual tests

Change-Id: Ifdcf4e9a09be0cc21ab9dc579dcae8dfbe91a9d2
Reviewed-on: http://codereview.qt.nokia.com/3212
Reviewed-by: hjk <qthjk@ovi.com>
This commit is contained in:
hjk
2011-08-18 16:14:34 +02:00
committed by hjk
parent 450142b97d
commit 8d2f0376e2

View File

@@ -34,7 +34,7 @@
//template <typename T> class B; B foo() {} //template <typename T> class B; B foo() {}
void dummyStatement(const void * = 0, const void * = 0, const void * = 0) {} void dummyStatement(...) {}
#include "../simple/deep/deep/simple_gdbtest_app.h" #include "../simple/deep/deep/simple_gdbtest_app.h"
@@ -156,110 +156,6 @@ namespace multibp {
} // namespace multibp } // namespace multibp
namespace qobjectdata {
#if USE_PRIVATE
class DerivedObjectPrivate : public QObjectPrivate
{
public:
DerivedObjectPrivate()
{
m_extraX = 43;
m_extraY.append("xxx");
m_extraZ = 1;
}
int m_extraX;
QStringList m_extraY;
uint m_extraZ : 1;
bool m_extraA : 1;
bool m_extraB;
};
class DerivedObject : public QObject
{
Q_OBJECT
public:
DerivedObject()
: QObject(*new DerivedObjectPrivate, 0)
{}
Q_PROPERTY(int x READ x WRITE setX)
Q_PROPERTY(QStringList y READ y WRITE setY)
Q_PROPERTY(uint z READ z WRITE setZ)
int x() const;
void setX(int x);
QStringList y() const;
void setY(QStringList y);
uint z() const;
void setZ(uint z);
private:
Q_DECLARE_PRIVATE(DerivedObject)
};
int DerivedObject::x() const
{
Q_D(const DerivedObject);
return d->m_extraX;
}
void DerivedObject::setX(int x)
{
Q_D(DerivedObject);
d->m_extraX = x;
d->m_extraA = !d->m_extraA;
d->m_extraB = !d->m_extraB;
}
QStringList DerivedObject::y() const
{
Q_D(const DerivedObject);
return d->m_extraY;
}
void DerivedObject::setY(QStringList y)
{
Q_D(DerivedObject);
d->m_extraY = y;
}
uint DerivedObject::z() const
{
Q_D(const DerivedObject);
return d->m_extraZ;
}
void DerivedObject::setZ(uint z)
{
Q_D(DerivedObject);
d->m_extraZ = z;
}
#endif
void testQObjectData()
{
// This checks whether QObject-derived classes with Q_PROPERTYs
// are displayed properly.
#if USE_PRIVATE
DerivedObject ob;
// <=== Break here.
// expand ob and ob.properties
// step, and check whether x gets updated.
ob.setX(23);
ob.setX(25);
ob.setX(26);
ob.setX(63);
ob.setX(32);
#endif
}
} // namespace qobjectdata
namespace nsX { namespace nsY { int z; } } namespace nsX { namespace nsY { int z; } }
namespace nsXY = nsX::nsY; namespace nsXY = nsX::nsY;
@@ -462,20 +358,6 @@ namespace anon {
} // namespace anon } // namespace anon
typedef void (*func_t)();
func_t testFunctionPointer()
{
func_t f1 = anon::testAnonymous;
func_t f2 = testPeekAndPoke3;
func_t f3 = testPeekAndPoke3;
Q_UNUSED(f1);
Q_UNUSED(f2);
Q_UNUSED(f3);
return f1;
}
namespace qbytearray { namespace qbytearray {
void testQByteArray1() void testQByteArray1()
@@ -624,7 +506,7 @@ namespace qhostaddress {
{ {
QHostAddress ha1(129u * 256u * 256u * 256u + 130u); QHostAddress ha1(129u * 256u * 256u * 256u + 130u);
QHostAddress ha2("127.0.0.1"); QHostAddress ha2("127.0.0.1");
// <== break here // <== Break here.
// Check ha1 and ha2 look correct. // Check ha1 and ha2 look correct.
dummyStatement(&ha1, &ha2); dummyStatement(&ha1, &ha2);
} }
@@ -723,36 +605,6 @@ void testFunction()
func.max = 8; func.max = 8;
} }
void testOutput()
{
qDebug() << "qDebug() 1";
qDebug() << "qDebug() 2";
qDebug() << "qDebug() 3";
qDebug() << "qDebug <foo & bar>";
std::cout << "std::cout @@ 1" << std::endl;
std::cout << "std::cout @@ 2\n";
std::cout << "std::cout @@ 3" << std::endl;
std::cout << "std::cout <foo & bar>\n";
std::cerr << "std::cerr 1\n";
std::cerr << "std::cerr 2\n";
std::cerr << "std::cerr 3\n";
std::cerr << "std::cerr <foo & bar>\n";
}
void testInput()
{
#if 0
// This works only when "Run in terminal" is selected
// in the Run Configuration.
int i;
std::cin >> i;
int j;
std::cin >> j;
#endif
}
void testQLinkedList() void testQLinkedList()
{ {
#if 1 #if 1
@@ -977,26 +829,35 @@ void testQMultiMap()
#endif #endif
} }
namespace qobject {
void testQObject1()
{
// This checks whether signal-slot connections are displayed.
QObject parent;
parent.setObjectName("A Parent");
QObject child(&parent);
child.setObjectName("A Child");
QObject::connect(&child, SIGNAL(destroyed()), qApp, SLOT(quit()));
QObject::disconnect(&child, SIGNAL(destroyed()), qApp, SLOT(quit()));
child.setObjectName("A renamed Child");
// <=== Break here.
// Expand all.
dummyStatement(&parent, &child);
}
namespace Names { namespace Names {
namespace Bar { namespace Bar {
struct Ui { struct Ui { Ui() { w = 0; } QWidget *w; };
Ui() { w = 0; }
QWidget *w;
};
class TestObject : public QObject class TestObject : public QObject
{ {
Q_OBJECT Q_OBJECT
public: public:
TestObject(QObject *parent = 0) TestObject(QObject *parent = 0) : QObject(parent)
: QObject(parent) { m_ui = new Ui; m_ui->w = new QWidget; }
{
m_ui = new Ui;
m_ui->w = new QWidget;
Q_UNUSED(parent);
}
Q_PROPERTY(QString myProp1 READ myProp1 WRITE setMyProp1) Q_PROPERTY(QString myProp1 READ myProp1 WRITE setMyProp1)
QString myProp1() const { return m_myProp1; } QString myProp1() const { return m_myProp1; }
@@ -1015,7 +876,7 @@ public:
} // namespace Bar } // namespace Bar
} // namespace Names } // namespace Names
void testQObject(int &argc, char *argv[]) void testQObject2(int &argc, char *argv[])
{ {
QApplication app(argc, argv); QApplication app(argc, argv);
//QString longString = QString(10000, QLatin1Char('A')); //QString longString = QString(10000, QLatin1Char('A'));
@@ -1065,7 +926,7 @@ void testQObject(int &argc, char *argv[])
QLabel l(str); QLabel l(str);
l.setObjectName("Some Label"); l.setObjectName("Some Label");
l.show(); l.show();
app.exec(); //app.exec();
#endif #endif
} }
@@ -1101,9 +962,115 @@ void testSignalSlot(int &argc, char *argv[])
Sender sender; Sender sender;
Receiver receiver; Receiver receiver;
QObject::connect(&sender, SIGNAL(aSignal()), &receiver, SLOT(aSlot())); QObject::connect(&sender, SIGNAL(aSignal()), &receiver, SLOT(aSlot()));
// Break here.
// Single step through signal emission.
sender.doEmit(); sender.doEmit();
dummyStatement(&app);
}
#if USE_PRIVATE
struct DerivedObjectPrivate : public QObjectPrivate
{
DerivedObjectPrivate() {
m_extraX = 43;
m_extraY.append("xxx");
m_extraZ = 1;
}
int m_extraX;
QStringList m_extraY;
uint m_extraZ : 1;
bool m_extraA : 1;
bool m_extraB;
}; };
class DerivedObject : public QObject
{
Q_OBJECT
public:
DerivedObject() : QObject(*new DerivedObjectPrivate, 0) {}
Q_PROPERTY(int x READ x WRITE setX)
Q_PROPERTY(QStringList y READ y WRITE setY)
Q_PROPERTY(uint z READ z WRITE setZ)
int x() const;
void setX(int x);
QStringList y() const;
void setY(QStringList y);
uint z() const;
void setZ(uint z);
private:
Q_DECLARE_PRIVATE(DerivedObject)
};
int DerivedObject::x() const
{
Q_D(const DerivedObject);
return d->m_extraX;
}
void DerivedObject::setX(int x)
{
Q_D(DerivedObject);
d->m_extraX = x;
d->m_extraA = !d->m_extraA;
d->m_extraB = !d->m_extraB;
}
QStringList DerivedObject::y() const
{
Q_D(const DerivedObject);
return d->m_extraY;
}
void DerivedObject::setY(QStringList y)
{
Q_D(DerivedObject);
d->m_extraY = y;
}
uint DerivedObject::z() const
{
Q_D(const DerivedObject);
return d->m_extraZ;
}
void DerivedObject::setZ(uint z)
{
Q_D(DerivedObject);
d->m_extraZ = z;
}
#endif
void testQObjectData()
{
// This checks whether QObject-derived classes with Q_PROPERTYs
// are displayed properly.
#if USE_PRIVATE
DerivedObject ob;
// <=== Break here.
// expand ob and ob.properties
// step, and check whether x gets updated.
ob.setX(23);
ob.setX(25);
ob.setX(26);
#endif
}
void testQObject(int &argc, char *argv[])
{
testQObjectData();
testQObject1();
testQObject2(argc, argv);
testSignalSlot(argc, argv);
}
} // namespace qobject
void testQPixmap() void testQPixmap()
{ {
@@ -1737,7 +1704,7 @@ void testQStandardItemModel()
++i; ++i;
} }
QStack<int> testQStack() void testQStack()
{ {
QVector<int> bigv; QVector<int> bigv;
for (int i = 0; i < 10; ++i) for (int i = 0; i < 10; ++i)
@@ -1759,33 +1726,18 @@ QStack<int> testQStack()
QStack<bool> vec; QStack<bool> vec;
vec.append(true); vec.append(true);
vec.append(false); vec.append(false);
QStack<int> result; // <=== Break here.
return result; dummyStatement(&vec);
} }
void testQUrl() void testQUrl()
{ {
QUrl url(QString("http://www.nokia.com")); QUrl url(QString("http://www.nokia.com"));
(void) url; // <=== Break here.
dummyStatement(&url);
} }
#ifdef FOP
int xxxx()
{
}
#else
void xxxx()
{
}
#endif
void testQString() void testQString()
{ {
QString str1("Hello Qt"); // --> Value: "Hello Qt" QString str1("Hello Qt"); // --> Value: "Hello Qt"
@@ -1873,8 +1825,7 @@ namespace formats {
// Other: Select UCS-6 in "Change Format for Type" in L&W context menu. // Other: Select UCS-6 in "Change Format for Type" in L&W context menu.
// Make sure to undo "Change Format". // Make sure to undo "Change Format".
dummyStatement(&s, &w); dummyStatement(&s, &w, &t);
dummyStatement(&t);
} }
void testCharArrays() void testCharArrays()
@@ -2352,17 +2303,6 @@ void testHidden()
++n; ++n;
} }
void testObject1()
{
QObject parent;
parent.setObjectName("A Parent");
QObject child(&parent);
child.setObjectName("A Child");
QObject::connect(&child, SIGNAL(destroyed()), qApp, SLOT(quit()));
QObject::disconnect(&child, SIGNAL(destroyed()), qApp, SLOT(quit()));
child.setObjectName("A renamed Child");
}
void testQHash1() void testQHash1()
{ {
QHash<QString, QList<int> > hash; QHash<QString, QList<int> > hash;
@@ -2441,8 +2381,7 @@ namespace basic {
for (int j = 0; j != 3; ++j) for (int j = 0; j != 3; ++j)
d[i][j] = i + j; d[i][j] = i + j;
// <== Break here. // <== Break here.
dummyStatement(&x, &f, &d); dummyStatement(&x, &f, &d, &ff, &diamond);
dummyStatement(&ff, &diamond);
} }
void testArray2() void testArray2()
@@ -2546,6 +2485,7 @@ namespace basic {
// This checks whether bitfields are properly displayed // This checks whether bitfields are properly displayed
S s; S s;
// <=== Break here. // <=== Break here.
s.i = 0;
dummyStatement(&s); dummyStatement(&s);
} }
@@ -2581,11 +2521,8 @@ namespace basic {
myType2 t2 = 0; myType2 t2 = 0;
ns::vl j = 1000; ns::vl j = 1000;
ns::verylong k = 1000; ns::verylong k = 1000;
// <== Break here.
++j; dummyStatement(&j, &k, &t1, &t2);
++k;
++t1;
++t2;
} }
void testStruct() void testStruct()
@@ -2625,11 +2562,8 @@ namespace basic {
std::vector<int> svi; std::vector<int> svi;
std::stack<int> ssi; std::stack<int> ssi;
dummyStatement(&s, &sl, &mii); dummyStatement(&s, &sl, &mii, &mss, &hii, &hss, &si, &vi, &li,
dummyStatement(&mss, &hii, &hss); &ss, &smii, &smss, &sli, &svi, &ssi, &ssl);
dummyStatement(&li, &vi, &si);
dummyStatement(&ss, &smii, &smss);
dummyStatement(&sli, &svi, &ssi);
} }
void testTypeFormats() void testTypeFormats()
@@ -2666,8 +2600,9 @@ namespace basic {
void A::doSomething(CVoidPtr cp) const void A::doSomething(CVoidPtr cp) const
{ {
Q_UNUSED(cp); // <=== Break here.
std::cout << test << std::endl; // Check cp.
dummyStatement(&cp);
} }
void testPtrTypedef() void testPtrTypedef()
@@ -2722,8 +2657,7 @@ namespace basic {
const int c = 44; const int c = 44;
const Ref d = a; const Ref d = a;
// <=== Break here. // <=== Break here.
dummyStatement(&a, &b); dummyStatement(&a, &b, &c, &d);
dummyStatement(&c, &d);
} }
void testReference2() void testReference2()
@@ -2734,8 +2668,7 @@ namespace basic {
const QString c = "world"; const QString c = "world";
const Ref d = a; const Ref d = a;
// <=== Break here. // <=== Break here.
dummyStatement(&a, &b); dummyStatement(&a, &b, &c, &d);
dummyStatement(&c, &d);
} }
void testLongEvaluation() void testLongEvaluation()
@@ -2746,11 +2679,35 @@ namespace basic {
bigv.append(time); bigv.append(time);
// <== Break here. // <== Break here.
// Expand bigv. // Expand bigv.
// This is expected to take up to a minute.
dummyStatement(&bigv); dummyStatement(&bigv);
} }
void testFork()
{
QProcess proc;
proc.start("/bin/ls");
proc.waitForFinished();
QByteArray ba = proc.readAllStandardError();
ba.append('x');
// <== Break here.
// Check there is some contents in ba. Error message is expected.
dummyStatement(&ba);
}
void testFunctionPointer()
{
typedef void (*func_t)();
func_t f2 = testPeekAndPoke3;
// <=== Break here.
// Check there's a valid display for f2.
dummyStatement(&f2);
}
void testBasic() void testBasic()
{ {
testReference1();
testReference2();
testArray1(); testArray1();
testArray2(); testArray2();
testArray3(); testArray3();
@@ -2768,9 +2725,9 @@ namespace basic {
testStringWithNewline(); testStringWithNewline();
testMemoryView(); testMemoryView();
testColoredMemoryView(); testColoredMemoryView();
testReference1();
testReference2();
testLongEvaluation(); testLongEvaluation();
testFork();
testFunctionPointer();
} }
} // namespace basic } // namespace basic
@@ -2820,11 +2777,15 @@ void testPassByReference()
testPassByReferenceHelper(f); testPassByReferenceHelper(f);
} }
namespace io {
void testWCout() void testWCout()
{ {
using namespace std; using namespace std;
wstring x = L"xxxxx"; wstring x = L"xxxxx";
wstring::iterator i = x.begin(); wstring::iterator i = x.begin();
// Break here.
// Step.
while (i != x.end()) { while (i != x.end()) {
wcout << *i; wcout << *i;
i++; i++;
@@ -2849,6 +2810,8 @@ void testWCout0()
using namespace std; using namespace std;
//std::ios::sync_with_stdio(false); //std::ios::sync_with_stdio(false);
// Break here.
// Step.
wcout << L"WWWWWW" << endl; wcout << L"WWWWWW" << endl;
wcerr << L"YYYYYY" << endl; wcerr << L"YYYYYY" << endl;
cout << "CCCCCC" << endl; cout << "CCCCCC" << endl;
@@ -2863,6 +2826,47 @@ void testWCout0()
cerr << "EEEEEE" << endl; cerr << "EEEEEE" << endl;
} }
void testOutput()
{
qDebug() << "qDebug() 1";
qDebug() << "qDebug() 2";
qDebug() << "qDebug() 3";
qDebug() << "qDebug <foo & bar>";
std::cout << "std::cout @@ 1" << std::endl;
std::cout << "std::cout @@ 2\n";
std::cout << "std::cout @@ 3" << std::endl;
std::cout << "std::cout <foo & bar>\n";
std::cerr << "std::cerr 1\n";
std::cerr << "std::cerr 2\n";
std::cerr << "std::cerr 3\n";
std::cerr << "std::cerr <foo & bar>\n";
}
void testInput()
{
// This works only when "Run in terminal" is selected
// in the Run Configuration.
int i;
std::cin >> i;
int j;
std::cin >> j;
}
void testIO()
{
testOutput();
//testInput();
//testWCout();
//testWCout0();
}
} // namespace io
namespace sse {
void testSSE() void testSSE()
{ {
#ifdef __SSE__ #ifdef __SSE__
@@ -2876,10 +2880,14 @@ void testSSE()
__m128 sseA, sseB; __m128 sseA, sseB;
sseA = _mm_loadu_ps(a); sseA = _mm_loadu_ps(a);
sseB = _mm_loadu_ps(b); sseB = _mm_loadu_ps(b);
++i; // Break here.
// Expand all.
dummyStatement(&i, &sseA, &sseB);
#endif #endif
} }
} // namespace sse
void testQSettings() void testQSettings()
{ {
// Note: Construct a QCoreApplication first. // Note: Construct a QCoreApplication first.
@@ -2915,47 +2923,56 @@ void testQScriptValue(int argc, char *argv[])
QScriptValue d = s.data(); QScriptValue d = s.data();
} }
void testBoostOptional()
{ namespace boost {
#if USE_BOOST #if USE_BOOST
void testBoostOptional1()
{
boost::optional<int> i; boost::optional<int> i;
// <=== Break here.
// Step.
i = 1; i = 1;
boost::optional<QStringList> sl;
sl = (QStringList() << "xxx" << "yyy");
sl.get().append("zzz");
i = 3; i = 3;
i = 4; i = 4;
i = 5; dummyStatement(&i);
#endif }
void testBoostOptional2()
{
boost::optional<QStringList> sl;
// <=== Break here.
// Step.
sl = (QStringList() << "xxx" << "yyy");
sl.get().append("zzz");
dummyStatement(&sl);
} }
void testBoostSharedPtr() void testBoostSharedPtr()
{ {
#if USE_BOOST
QSharedPointer<int> qs;
QSharedPointer<int> qi(new int(43));
QSharedPointer<int> qj = qi;
boost::shared_ptr<int> s; boost::shared_ptr<int> s;
boost::shared_ptr<int> i(new int(43)); boost::shared_ptr<int> i(new int(43));
boost::shared_ptr<int> j = i; boost::shared_ptr<int> j = i;
boost::shared_ptr<QStringList> sl(new QStringList(QStringList() << "HUH!")); boost::shared_ptr<QStringList> sl(new QStringList(QStringList() << "HUH!"));
// <=== Break here. // <=== Break here.
dummyStatement(&qs, &qj);
dummyStatement(&s, &j, &sl); dummyStatement(&s, &j, &sl);
#endif
} }
void testFork() void testBoost()
{ {
QProcess proc; testBoostOptional1();
proc.start("/bin/ls"); testBoostOptional2();
proc.waitForFinished(); testBoostSharedPtr();
QByteArray ba = proc.readAllStandardError();
ba.append('x');
ba.append('x');
} }
#else
void testBoost() {}
#endif
} // namespace boost
namespace mpi { namespace mpi {
@@ -3113,8 +3130,8 @@ namespace eigen {
// <=== Break here. // <=== Break here.
// check that Locals and Expresssions view looks sane // check that Locals and Expresssions view looks sane
dummyStatement(&colMajorMatrix, &rowMajorMatrix, &test); dummyStatement(&colMajorMatrix, &rowMajorMatrix, &test,
dummyStatement(&myMatrix, &myDynamicMatrix); &myMatrix, &myDynamicMatrix);
#endif #endif
} }
} }
@@ -3393,8 +3410,7 @@ namespace bug5799 {
// <=== Break here. // <=== Break here.
// Expand s2 and s4. // Expand s2 and s4.
// Check there is no <unavailable synchronous data> // Check there is no <unavailable synchronous data>
dummyStatement(&s2, &s4); dummyStatement(&s2, &s4, &a1, &a2);
dummyStatement(&a1, &a2);
} }
} // namespace bug5799 } // namespace bug5799
@@ -3467,7 +3483,11 @@ namespace varargs {
} // namespace varargs } // namespace varargs
int main(int argc, char *argv[])
namespace sanity {
// A very quick check.
void testSanity()
{ {
std::string s; std::string s;
s = "hallo"; s = "hallo";
@@ -3489,39 +3509,34 @@ int main(int argc, char *argv[])
list2 << "baz"; list2 << "baz";
list2 << 0; list2 << 0;
formats::testFormats(); QObject obj;
obj.setObjectName("An Object");
// <=== Break here.
// Expand all.
dummyStatement(&s, &qv, &v, &list, &list2, &obj);
}
}
int main(int argc, char *argv[])
{
// For a very quick check, step into this one.
sanity::testSanity();
// Check for normal dumpers.
basic::testBasic();
qhostaddress::testQHostAddress(); qhostaddress::testQHostAddress();
varargs::testVaList(); varargs::testVaList();
cp42895::test42895();
bug5046::test5046(); formats::testFormats();
bug4904::test4904();
qc41700::test41700();
qc42170::test42170();
multibp::testMultiBp();
bug842::test842();
bug3611::test3611();
bug4019::test4019();
bug5106::test5106();
bug5184::test5184();
bug5799::test5799();
//bug4497::test4497();
eigen::testEigen();
kr::testKR();
qxml::testQXmlAttributes(); qxml::testQXmlAttributes();
qregexp::testQRegExp(); qregexp::testQRegExp();
breakpoints::testBreakpoints(); breakpoints::testBreakpoints();
mpi::testMPI();
qobjectdata::testQObjectData();
//testQSettings(); //testQSettings();
//testWCout0();
//testWCout();
testSSE();
testQLocale();
qrect::testGeometry(); qrect::testGeometry();
qregion::testQRegion(); qregion::testQRegion();
basic::testBasic();
testPeekAndPoke3(); testPeekAndPoke3();
testFunctionPointer();
anon::testAnonymous(); anon::testAnonymous();
//testEndlessLoop(); //testEndlessLoop();
//testEndlessRecursion(); //testEndlessRecursion();
@@ -3530,18 +3545,16 @@ int main(int argc, char *argv[])
qdatetime::testDateTime(); qdatetime::testDateTime();
qfileinfo::testQFileInfo(); qfileinfo::testQFileInfo();
testQFixed(); testQFixed();
testObject1();
stdvector::testStdVector(); stdvector::testStdVector();
testQHash1(); testQHash1();
testSignalSlot(argc, argv); qobject::testQObject(argc, argv);
testQStandardItemModel(); testQStandardItemModel();
testFunction(); testFunction();
testQImage(); testQImage();
noargs::testNoArgumentName(1, 2, 3); noargs::testNoArgumentName(1, 2, 3);
testQTextCursor(); testQTextCursor();
testInput(); io::testIO();
testOutput();
testHidden(); testHidden();
testCatchThrow(); testCatchThrow();
qbytearray::testQByteArray(); qbytearray::testQByteArray();
@@ -3570,21 +3583,33 @@ int main(int argc, char *argv[])
testQSharedPointer(); testQSharedPointer();
qstringlist::testQStringList(); qstringlist::testQStringList();
testQScriptValue(argc, argv); testQScriptValue(argc, argv);
basic::testStruct();
//qthread::testQThread(); //qthread::testQThread();
qvariant::testQVariant(); qvariant::testQVariant();
qvector::testQVector(); qvector::testQVector();
testBoostOptional(); // Third party data types.
testBoostSharedPtr(); boost::testBoost();
eigen::testEigen();
kr::testKR();
mpi::testMPI();
sse::testSSE();
//*(int *)0 = 0; // The following tests are specific to certain bugs.
testFork(); // They need not to be checked during a normal release check.
cp42895::test42895();
bug5046::test5046();
bug4904::test4904();
qc41700::test41700();
qc42170::test42170();
multibp::testMultiBp();
bug842::test842();
bug3611::test3611();
bug4019::test4019();
//bug4497::test4497();
bug5106::test5106();
bug5184::test5184();
bug5799::test5799();
testQObject(argc, argv);
//QColor color(255,128,10);
//QFont font;
return 0; return 0;
} }