X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=ceph%2Fsrc%2Ftest%2Fcrimson%2Fgtest_seastar.cc;fp=ceph%2Fsrc%2Ftest%2Fcrimson%2Fgtest_seastar.cc;h=abb1f88f2a06521ae3333db074d715a4a39e0abe;hb=20effc670b57271cb089376d6d0800990e5218d5;hp=9d43fc6be1496cef3d2e15db709db0635f44ee21;hpb=a71831dadd1e1f3e0fa70405511f65cc33db0498;p=ceph.git diff --git a/ceph/src/test/crimson/gtest_seastar.cc b/ceph/src/test/crimson/gtest_seastar.cc index 9d43fc6be..abb1f88f2 100644 --- a/ceph/src/test/crimson/gtest_seastar.cc +++ b/ceph/src/test/crimson/gtest_seastar.cc @@ -1,22 +1,64 @@ // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- // vim: ts=8 sw=2 smarttab +#include +#include + #include "include/ceph_assert.h" #include "gtest_seastar.h" +#include "common/ceph_argparse.h" +#include "crimson/common/config_proxy.h" +#include "crimson/common/perf_counters_collection.h" + SeastarRunner seastar_test_suite_t::seastar_env; int main(int argc, char **argv) { - ::testing::InitGoogleTest(&argc, argv); + // preprocess args + std::vector args; + bool global_log_level_is_set = false; + const char* prefix_log_level = "--default-log-level"; + for (int i = 0; i < argc; ++i) { + if (std::strncmp(argv[i], prefix_log_level, + std::strlen(prefix_log_level)) == 0) { + global_log_level_is_set = true; + } + args.push_back(argv[i]); + } + // HACK: differentiate between the `make check` bot and human user + // for the sake of log flooding + if (!global_log_level_is_set && !std::getenv("FOR_MAKE_CHECK")) { + std::cout << "WARNING: set default seastar log level to debug" << std::endl; + ++argc; + args.push_back("--default-log-level=debug"); + } + + auto app_argv = const_cast(args.data()); + auto app_argc = static_cast(args.size()); + ::testing::InitGoogleTest(&app_argc, app_argv); + + int ret = seastar_test_suite_t::seastar_env.init(app_argc, app_argv); + if (ret != 0) { + seastar_test_suite_t::seastar_env.stop(); + return ret; + } - seastar_test_suite_t::seastar_env.init(argc, argv); + seastar_test_suite_t::seastar_env.run([] { + return crimson::common::sharded_conf().start( + EntityName{}, std::string_view{"ceph"} + ).then([] { + return crimson::common::sharded_perf_coll().start(); + }); + }); - seastar::global_logger_registry().set_all_loggers_level( - seastar::log_level::debug - ); + ret = RUN_ALL_TESTS(); - int ret = RUN_ALL_TESTS(); + seastar_test_suite_t::seastar_env.run([] { + return crimson::common::sharded_perf_coll().stop().then([] { + return crimson::common::sharded_conf().stop(); + }); + }); seastar_test_suite_t::seastar_env.stop(); return ret;