File indexing completed on 2024-04-28 15:34:47

0001 /* -*- C++ -*-
0002     This file contains a testsuite for the memory management in ThreadWeaver.
0003 
0004     SPDX-FileCopyrightText: 2005-2013 Mirko Boehm <mirko@kde.org>
0005 
0006     SPDX-License-Identifier: LGPL-2.0-or-later
0007 */
0008 
0009 #ifndef DELETETEST_H
0010 #define DELETETEST_H
0011 
0012 #include <QAtomicInt>
0013 #include <QObject>
0014 #include <QTest>
0015 
0016 #include <ThreadWeaver/JobPointer>
0017 
0018 namespace ThreadWeaver
0019 {
0020 class Job;
0021 }
0022 
0023 using namespace ThreadWeaver;
0024 
0025 class DeleteTest : public QObject
0026 {
0027     Q_OBJECT
0028 public:
0029     DeleteTest();
0030 
0031 private Q_SLOTS:
0032     void DeleteJobsTest();
0033     void MutexLockingAssertsTest();
0034     void DeleteCollectionTest();
0035     void DeleteDecoratedCollectionTest();
0036     void DeleteSequenceTest();
0037 
0038 public Q_SLOTS: // not a test!
0039     void deleteSequence(ThreadWeaver::JobPointer job);
0040     void countCompletedDecoratedCollection(ThreadWeaver::JobPointer job);
0041 
0042 Q_SIGNALS:
0043     void deleteSequenceTestCompleted();
0044     void deleteDecoratedCollectionTestCompleted();
0045 
0046 private:
0047     QAtomicInt m_finishCount;
0048 };
0049 
0050 #endif