libtasks Documentation  1.6
test_uwsgi_thrift_async.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2013-2014 ADTECH GmbH
3  * Licensed under MIT (https://github.com/adtechlabs/libtasks/blob/master/COPYING)
4  *
5  * Author: Andreas Pohl
6  */
7 
8 #include <cppunit/TestCase.h>
9 #include <cppunit/TestFixture.h>
10 #include <cppunit/extensions/HelperMacros.h>
11 
12 #include <queue>
13 #include <vector>
14 
15 #include <IpService.h> // Thrift generated
16 
18 
19 using namespace tasks;
20 using namespace tasks::net;
21 
22 class ip_service_async1 : public uwsgi_thrift_async_handler<IpService_lookup_result, IpService_lookup_args> {
23  public:
24  void service(std::shared_ptr<args_t> args);
25  std::string service_name() const { return "lookup"; }
26 };
27 
28 class ip_service_async2 : public uwsgi_thrift_async_handler<IpService_lookup_result, IpService_lookup_args> {
29  public:
30  void service(std::shared_ptr<args_t> args);
31  std::string service_name() const { return "lookup"; }
32 };
33 
34 class test_uwsgi_thrift_async : public CppUnit::TestFixture {
35  CPPUNIT_TEST_SUITE(test_uwsgi_thrift_async);
36  CPPUNIT_TEST(request_finish_in_worker_ctx);
37  CPPUNIT_TEST(request_finish_exec);
38  CPPUNIT_TEST(request_finish_exec_timeout);
39  CPPUNIT_TEST_SUITE_END();
40 
41  public:
42  void setUp() {}
43  void tearDown() {}
44 
45  protected:
46  void request_finish_in_worker_ctx();
47  void request_finish_exec();
48  void request_finish_exec_timeout();
49  void request(std::string url);
50 
51  private:
52  std::unique_ptr<net_io_task> m_srv1;
53  std::unique_ptr<net_io_task> m_srv2;
54  std::unique_ptr<net_io_task> m_srv3;
55 };
std::string service_name() const
std::unique_ptr< net_io_task > m_srv3
std::string service_name() const
std::unique_ptr< net_io_task > m_srv2
std::unique_ptr< net_io_task > m_srv1