All pastes #905060 Raw Edit

Miscellany

public text v1 · immutable
·published 2008-02-15 15:03 UTC
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 *********