rendered paste body#include <QtTest>
#include <QObject>
#include <QPointer>
#include <QTimer>
#include <QEventLoop>
class tst_DeferredDelete: public QObject
{
Q_OBJECT
private slots:
void deferredDeletion();
};
void tst_DeferredDelete::deferredDeletion()
{
QObject *obj = new QObject;
QPointer<QObject> ptr = obj;
QVERIFY(!ptr.isNull());
obj->deleteLater();
QVERIFY(!ptr.isNull());
QEventLoop loop;
QTimer::singleShot(100, &loop, SLOT(quit()));
loop.exec();
QVERIFY(!ptr.isNull());
}
QTEST_MAIN(tst_DeferredDelete)
#include "tst_deferreddelete.moc"
$ ./deferredtest
********* Start testing of tst_DeferredDelete *********
Config: Using QTest library 4.4.0, Qt 4.4.0
PASS : tst_DeferredDelete::initTestCase()
FAIL! : tst_DeferredDelete::deferredDeletion() '!ptr.isNull()' returned FALSE. ()
Loc: [/tmp/deferredtest/tst_deferreddelete.cpp(27)]
PASS : tst_DeferredDelete::cleanupTestCase()
Totals: 2 passed, 1 failed, 0 skipped
********* Finished testing of tst_DeferredDelete *********