Seastar
High performance C++ framework for concurrent servers
Toggle main menu visibility
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
a
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
v
w
y
Functions
a
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
v
w
y
Variables
Typedefs
Enumerations
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
y
~
Functions
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
y
~
Variables
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
Typedefs
Enumerations
Related Functions
Files
File List
Examples
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Modules
Pages
seastar
testing
thread_test_case.hh
1
/*
2
* This file is open source software, licensed to you under the terms
3
* of the Apache License, Version 2.0 (the "License"). See the NOTICE file
4
* distributed with this work for additional information regarding copyright
5
* ownership. You may not use this file except in compliance with the License.
6
*
7
* You may obtain a copy of the License at
8
*
9
* http://www.apache.org/licenses/LICENSE-2.0
10
*
11
* Unless required by applicable law or agreed to in writing,
12
* software distributed under the License is distributed on an
13
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
* KIND, either express or implied. See the License for the
15
* specific language governing permissions and limitations
16
* under the License.
17
*/
18
19
/*
20
* Copyright (C) 2018 ScyllaDB Ltd.
21
*/
22
23
#pragma once
24
25
// IWYU pragma: begin_keep
26
#include <seastar/core/future.hh>
27
#include <seastar/core/thread.hh>
28
// IWYU pragma: end_keep
29
//
30
#include <boost/preprocessor/control/iif.hpp>
31
#include <boost/preprocessor/comparison/equal.hpp>
32
#include <boost/preprocessor/variadic/size.hpp>
33
34
#include <seastar/testing/seastar_test.hh>
35
36
#define SEASTAR_THREAD_TEST_CASE_WITH_DECO(name, decorators) \
37
struct name : public seastar::testing::seastar_test { \
38
using seastar::testing::seastar_test::seastar_test; \
39
seastar::future<> run_test_case() const override { \
40
return seastar::async([this] { \
41
do_run_test_case(); \
42
}); \
43
} \
44
void do_run_test_case() const; \
45
}; \
46
static const name name ## _instance( \
47
#name, \
48
__FILE__, \
49
__LINE__, \
50
decorators);
/* NOLINT(cert-err58-cpp) */
\
51
void name::do_run_test_case() const
52
53
#define SEASTAR_THREAD_TEST_CASE_WITHOUT_DECO(name) \
54
SEASTAR_THREAD_TEST_CASE_WITH_DECO( \
55
name, \
56
boost::unit_test::decorator::collector_t::instance())
57
58
#define SEASTAR_THREAD_TEST_CASE(...) \
59
SEASTAR_TEST_INVOKE( \
60
BOOST_PP_IIF( \
61
BOOST_PP_EQUAL(BOOST_PP_VARIADIC_SIZE(__VA_ARGS__), 1), \
62
SEASTAR_THREAD_TEST_CASE_WITHOUT_DECO, \
63
SEASTAR_THREAD_TEST_CASE_WITH_DECO), \
64
__VA_ARGS__)
Generated by
1.9.4