LeechCraft 0.6.70-19214-g121e5318a7
Modular cross-platform feature rich live environment.
Loading...
Searching...
No Matches
corochanneltest.h
Go to the documentation of this file.
1/**********************************************************************
2 * LeechCraft - modular cross-platform feature rich internet client.
3 * Copyright (C) 2006-2014 Georg Rudoy
4 *
5 * Distributed under the Boost Software License, Version 1.0.
6 * (See accompanying file LICENSE or copy at https://www.boost.org/LICENSE_1_0.txt)
7 **********************************************************************/
8
9#pragma once
10
11#include <QObject>
12
13namespace LC::Util
14{
15 class CoroChannelTest : public QObject
16 {
17 Q_OBJECT
18 public:
19 enum class Event
20 {
21 Sent,
22 Closed,
23 Received,
24 ReceivedEnd,
25 };
26 Q_ENUM (Event)
27 private slots:
28 void testSingleRecv ();
29 void testManyRecvs ();
30
31 void testSingleThreaded ();
32 void testSingleThreadedTimered ();
33
34 void testMerge ();
35
36 void testSendDefersWakeup ();
37 void testCloseDefersWakeup ();
38 void testCancelledReceiverDoesntTakeValue ();
39 void testCancelledReceiverDoesntStrandValueBehindClose ();
40 void testReceiverMayDestroyProducerOnSend ();
41 void testReceiverMayDestroyProducerOnClose ();
42 };
43}