1 #include <seastar/core/app-template.hh>
2 #include "common/ceph_argparse.h"
3 #include "crimson/common/auth_handler.h"
4 #include "crimson/common/config_proxy.h"
5 #include "crimson/mon/MonClient.h"
6 #include "crimson/net/Connection.h"
7 #include "crimson/net/Messenger.h"
9 using Config
= crimson::common::ConfigProxy
;
10 using MonClient
= crimson::mon::Client
;
14 class DummyAuthHandler
: public crimson::common::AuthHandler
{
16 void handle_authentication(const EntityName
& name
,
17 const AuthCapsInfo
& caps
) final
21 DummyAuthHandler dummy_handler
;
25 static seastar::future
<> test_monc()
27 return crimson::common::sharded_conf().start(EntityName
{}, string_view
{"ceph"}).then([] {
28 std::vector
<const char*> args
;
30 std::string conf_file_list
;
31 auto init_params
= ceph_argparse_early_args(args
,
32 CEPH_ENTITY_TYPE_CLIENT
,
35 auto& conf
= crimson::common::local_conf();
36 conf
->name
= init_params
.name
;
37 conf
->cluster
= cluster
;
38 return conf
.parse_config_files(conf_file_list
);
40 return crimson::common::sharded_perf_coll().start();
42 auto msgr
= crimson::net::Messenger::create(entity_name_t::OSD(0), "monc", 0);
43 auto& conf
= crimson::common::local_conf();
44 if (conf
->ms_crc_data
) {
47 if (conf
->ms_crc_header
) {
48 msgr
->set_crc_header();
50 msgr
->set_require_authorizer(false);
51 return seastar::do_with(MonClient
{*msgr
, dummy_handler
},
53 return msgr
->start(&monc
).then([&monc
] {
54 return seastar::with_timeout(
55 seastar::lowres_clock::now() + std::chrono::seconds
{10},
61 return msgr
->shutdown();
64 return crimson::common::sharded_perf_coll().stop().then([] {
65 return crimson::common::sharded_conf().stop();
70 int main(int argc
, char** argv
)
72 seastar::app_template app
;
73 return app
.run(argc
, argv
, [&] {
74 return test_monc().then([] {
75 std::cout
<< "All tests succeeded" << std::endl
;
76 }).handle_exception([] (auto eptr
) {
77 std::cout
<< "Test failure" << std::endl
;
78 return seastar::make_exception_future
<>(eptr
);
86 * compile-command: "make -j4 \
88 * unittest_seastar_monc"