xrpld
Toggle main menu visibility
Loading...
Searching...
No Matches
include
xrpl
beast
unit_test
suite_info.h
1
// Distributed under the Boost Software License, Version 1.0. (See accompanying
2
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
3
//
4
5
#pragma once
6
7
#include <
functional
>
8
#include <
string
>
9
#include <
tuple
>
10
#include <
utility
>
11
12
namespace
beast::unit_test
{
13
14
class
Runner
;
15
19
class
SuiteInfo
20
{
21
using
RunType
=
std::function
<void(
Runner
&)>;
22
23
std::string
name_
;
24
std::string
module_
;
25
std::string
library_
;
26
bool
manual_
;
27
int
priority_
;
28
RunType
run_
;
29
30
public
:
31
SuiteInfo
(
32
std::string
name
,
33
std::string
module
,
34
std::string
library
,
35
bool
manual
,
36
int
priority,
37
RunType
run
)
38
:
name_
(
std
::move(
name
))
39
,
module_
(
std
::move(
module
))
40
,
library_
(
std
::move(
library
))
41
,
manual_
(
manual
)
42
,
priority_
(priority)
43
,
run_
(
std
::move(
run
))
44
{
45
}
46
47
[[nodiscard]]
std::string
const
&
48
name
()
const
49
{
50
return
name_
;
51
}
52
53
[[nodiscard]]
std::string
const
&
54
module
()
const
55
{
56
return
module_
;
57
}
58
59
[[nodiscard]]
std::string
const
&
60
library
()
const
61
{
62
return
library_
;
63
}
64
68
[[nodiscard]]
bool
69
manual
()
const
70
{
71
return
manual_
;
72
}
73
77
[[nodiscard]]
std::string
78
fullName
()
const
79
{
80
return
library_
+
"."
+
module_
+
"."
+
name_
;
81
}
82
86
void
87
run
(
Runner
& r)
const
88
{
89
run_
(r);
90
}
91
92
friend
bool
93
operator<
(
SuiteInfo
const
& lhs,
SuiteInfo
const
& rhs)
94
{
95
// we want higher priority suites sorted first, thus the negation
96
// of priority value here
97
return
std::forward_as_tuple
(-lhs.
priority_
, lhs.
library_
, lhs.
module_
, lhs.
name_
) <
98
std::forward_as_tuple
(-rhs.
priority_
, rhs.
library_
, rhs.
module_
, rhs.
name_
);
99
}
100
};
101
102
//------------------------------------------------------------------------------
103
107
template
<
class
Suite>
108
SuiteInfo
109
makeSuiteInfo
(
std::string
name,
std::string
module,
std::string
library,
bool
manual,
int
priority)
110
{
111
return
SuiteInfo
(
112
std::move(name), std::move(module), std::move(library), manual, priority, [](
Runner
& r) {
113
Suite
{}(r);
114
});
115
}
116
117
}
// namespace beast::unit_test
std::string
beast::unit_test::Runner
Unit test runner interface.
Definition
runner.h:23
beast::unit_test::SuiteInfo
Associates a unit test type with metadata.
Definition
suite_info.h:20
beast::unit_test::SuiteInfo::library_
std::string library_
Definition
suite_info.h:25
beast::unit_test::SuiteInfo::library
std::string const & library() const
Definition
suite_info.h:60
beast::unit_test::SuiteInfo::name_
std::string name_
Definition
suite_info.h:23
beast::unit_test::SuiteInfo::operator<
friend bool operator<(SuiteInfo const &lhs, SuiteInfo const &rhs)
Definition
suite_info.h:93
beast::unit_test::SuiteInfo::run_
RunType run_
Definition
suite_info.h:28
beast::unit_test::SuiteInfo::SuiteInfo
SuiteInfo(std::string name, std::string module, std::string library, bool manual, int priority, RunType run)
Definition
suite_info.h:31
beast::unit_test::SuiteInfo::name
std::string const & name() const
Definition
suite_info.h:48
beast::unit_test::SuiteInfo::fullName
std::string fullName() const
Return the canonical suite name as a string.
Definition
suite_info.h:78
beast::unit_test::SuiteInfo::RunType
std::function< void(Runner &)> RunType
Definition
suite_info.h:21
beast::unit_test::SuiteInfo::run
void run(Runner &r) const
Run a new instance of the associated test suite.
Definition
suite_info.h:87
beast::unit_test::SuiteInfo::priority_
int priority_
Definition
suite_info.h:27
beast::unit_test::SuiteInfo::manual_
bool manual_
Definition
suite_info.h:26
beast::unit_test::SuiteInfo::manual
bool manual() const
Returns true if this suite only runs manually.
Definition
suite_info.h:69
beast::unit_test::SuiteInfo::module_
std::string module_
Definition
suite_info.h:24
beast::unit_test::SuiteInfo::module
std::string const & module() const
Definition
suite_info.h:54
beast::unit_test::Suite
A testsuite class.
Definition
suite.h:52
std::forward_as_tuple
T forward_as_tuple(T... args)
std::function
functional
beast::unit_test
Definition
include/xrpl/beast/unit_test/amount.h:11
beast::unit_test::makeSuiteInfo
SuiteInfo makeSuiteInfo(std::string name, std::string module, std::string library, bool manual, int priority)
Convenience for producing SuiteInfo for a given test type.
Definition
suite_info.h:109
std
STL namespace.
string
tuple
utility
Generated by
1.17.0