File indexing completed on 2024-04-28 15:34:48
0001 /* -*- C++ -*- 0002 This file contains a testsuite for sequences 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 #include <QCoreApplication> 0010 #include <QString> 0011 #include <QTest> 0012 0013 #include <ThreadWeaver/DebuggingAids> 0014 #include <ThreadWeaver/ThreadWeaver> 0015 0016 #include "AppendCharacterJob.h" 0017 #include "JobLoggingWeaver.h" 0018 #include "SequencesTests.h" 0019 #include "WaitForIdleAndFinished.h" 0020 0021 using namespace ThreadWeaver; 0022 0023 QMutex s_GlobalMutex; 0024 0025 SequencesTests::SequencesTests() 0026 { 0027 setDebugLevel(true, 1); 0028 } 0029 0030 void SequencesTests::RecursiveStopTest() 0031 { 0032 // auto logger = new JobLoggingWeaver(); 0033 // Queue queue(logger); 0034 Queue queue; 0035 WAITFORIDLEANDFINISHED(&queue); 0036 QString result; 0037 Sequence innerSequence; 0038 innerSequence << new AppendCharacterJob('b', &result) // 0039 << new FailingAppendCharacterJob('c', &result) // 0040 << new AppendCharacterJob('d', &result); 0041 0042 Sequence outerSequence; 0043 outerSequence << new AppendCharacterJob('a', &result) // 0044 << innerSequence // 0045 << new AppendCharacterJob('e', &result); 0046 0047 queue.stream() << outerSequence; 0048 queue.finish(); 0049 QCOMPARE(result, QString::fromLatin1("abc")); 0050 } 0051 0052 QTEST_MAIN(SequencesTests) 0053 0054 #include "moc_SequencesTests.cpp"