mirror of
https://github.com/ceph/ceph
synced 2025-02-24 11:37:37 +00:00
Merge pull request #37888 from tchaikov/wip-crimson-gtest
crimson/gtest_seastar: do not keep a copy of argv Reviewed-by: Yingxin Cheng <yingxin.cheng@intel.com> Reviewed-by: Ronen Friedman <rfriedma@redhat.com>
This commit is contained in:
commit
92300bb747
@ -9,13 +9,9 @@ seastar_gtest_env_t seastar_test_suite_t::seastar_env;
|
||||
seastar_gtest_env_t::seastar_gtest_env_t() :
|
||||
begin_fd{seastar::file_desc::eventfd(0, 0)} {}
|
||||
|
||||
void seastar_gtest_env_t::init(int _argc, char **_argv)
|
||||
void seastar_gtest_env_t::init(int argc, char **argv)
|
||||
{
|
||||
argc = _argc;
|
||||
argv = new char *[argc];
|
||||
for (int i = 0; i < argc; ++i) argv[i] = strdup(_argv[i]);
|
||||
|
||||
thread = std::thread([this] { reactor(); });
|
||||
thread = std::thread([argc, argv, this] { reactor(argc, argv); });
|
||||
eventfd_t result = 0;
|
||||
if (int r = ::eventfd_read(begin_fd.get(), &result); r < 0) {
|
||||
std::cerr << "unable to eventfd_read():" << errno << std::endl;
|
||||
@ -33,13 +29,9 @@ void seastar_gtest_env_t::stop()
|
||||
}
|
||||
|
||||
seastar_gtest_env_t::~seastar_gtest_env_t()
|
||||
{
|
||||
ceph_assert(argv);
|
||||
for (int i = 0; i < argc; ++i) free(argv[i]);
|
||||
delete[] argv;
|
||||
}
|
||||
{}
|
||||
|
||||
void seastar_gtest_env_t::reactor()
|
||||
void seastar_gtest_env_t::reactor(int argc, char** argv)
|
||||
{
|
||||
app.run(argc, argv, [this] {
|
||||
on_end.reset(new seastar::readable_eventfd);
|
||||
@ -58,13 +50,14 @@ void seastar_gtest_env_t::reactor()
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
::testing::InitGoogleTest(&argc, argv);
|
||||
|
||||
seastar_test_suite_t::seastar_env.init(argc, argv);
|
||||
|
||||
seastar::global_logger_registry().set_all_loggers_level(
|
||||
seastar::log_level::debug
|
||||
);
|
||||
|
||||
::testing::InitGoogleTest(&argc, argv);
|
||||
int ret = RUN_ALL_TESTS();
|
||||
|
||||
seastar_test_suite_t::seastar_env.stop();
|
||||
|
@ -20,8 +20,6 @@ struct seastar_gtest_env_t {
|
||||
seastar::file_desc begin_fd;
|
||||
std::unique_ptr<seastar::readable_eventfd> on_end;
|
||||
|
||||
int argc = 0;
|
||||
char **argv = nullptr;
|
||||
std::thread thread;
|
||||
|
||||
seastar_gtest_env_t();
|
||||
@ -29,7 +27,7 @@ struct seastar_gtest_env_t {
|
||||
|
||||
void init(int argc, char **argv);
|
||||
void stop();
|
||||
void reactor();
|
||||
void reactor(int argc, char **argv);
|
||||
|
||||
template <typename Func>
|
||||
void run(Func &&func) {
|
||||
|
Loading…
Reference in New Issue
Block a user