]> git.proxmox.com Git - ceph.git/blob - ceph/src/test/crimson/gtest_seastar.h
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / test / crimson / gtest_seastar.h
1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab
3
4 #pragma once
5
6 #include "gtest/gtest.h"
7
8 #include "seastar_runner.h"
9
10 struct seastar_test_suite_t : public ::testing::Test {
11 static SeastarRunner seastar_env;
12
13 template <typename Func>
14 void run(Func &&func) {
15 return seastar_env.run(std::forward<Func>(func));
16 }
17
18 template <typename Func>
19 void run_async(Func &&func) {
20 run(
21 [func=std::forward<Func>(func)]() mutable {
22 return seastar::async(std::forward<Func>(func));
23 });
24 }
25
26 virtual seastar::future<> set_up_fut() { return seastar::now(); }
27 void SetUp() final {
28 return run([this] { return set_up_fut(); });
29 }
30
31 virtual seastar::future<> tear_down_fut() { return seastar::now(); }
32 void TearDown() final {
33 return run([this] { return tear_down_fut(); });
34 }
35 };