1 /*
2  * Copyright (C) 1996-2021 The Squid Software Foundation and contributors
3  *
4  * Squid software is distributed under GPLv2+ license and includes
5  * contributions from numerous individuals and organizations.
6  * Please see the COPYING and CONTRIBUTORS files for details.
7  */
8 
9 #ifndef SQUID_SRC_TEST_EVENTLOOP_H
10 #define SQUID_SRC_TEST_EVENTLOOP_H
11 
12 #include <cppunit/extensions/HelperMacros.h>
13 
14 /*
15  * test the EventLoop implementation
16  */
17 
18 class testEventLoop : public CPPUNIT_NS::TestFixture
19 {
20     CPPUNIT_TEST_SUITE( testEventLoop );
21     CPPUNIT_TEST( testCreate );
22 
23 #if POLISHED_MAIN_LOOP
24     CPPUNIT_TEST( testRunOnce );
25     CPPUNIT_TEST( testRegisterDispatcher );
26     CPPUNIT_TEST( testRegisterEngine );
27     CPPUNIT_TEST( testEngineTimeout );
28     CPPUNIT_TEST( testStopOnIdle );
29 #endif
30 
31     CPPUNIT_TEST( testSetTimeService );
32     CPPUNIT_TEST( testSetPrimaryEngine );
33     CPPUNIT_TEST_SUITE_END();
34 
35 public:
36     void setUp();
37 
38 protected:
39     void testCreate();
40 
41 #if POLISHED_MAIN_LOOP
42     void testEngineTimeout();
43     void testRunOnce();
44     void testRegisterDispatcher();
45     void testRegisterEngine();
46     void testStopOnIdle();
47 #endif
48 
49     void testSetTimeService();
50     void testSetPrimaryEngine();
51     /* TODO:
52      * test that engine which errors a couple of times, then returns 0, then
53      * errors 10 times in a row triggers a fail on the 10th time around
54      */
55 };
56 
57 #endif
58 
59