Fix some bugs when testing opensds ansible
[stor4nfv.git] / src / ceph / src / test / encoding / test_ceph_time.h
1 #ifndef TEST_CEPH_TIME_H
2 #define TEST_CEPH_TIME_H
3
4 #include <list>
5 #include "common/ceph_time.h"
6
7 // wrapper for ceph::real_time that implements the dencoder interface
8 class real_time_wrapper {
9   ceph::real_time t;
10  public:
11   real_time_wrapper() = default;
12   real_time_wrapper(const ceph::real_time& t) : t(t) {}
13
14   void encode(bufferlist& bl) const {
15     ::encode(t, bl);
16   }
17   void decode(bufferlist::iterator &p) {
18     ::decode(t, p);
19   }
20   void dump(Formatter* f) {
21     auto epoch_time = ceph::real_clock::to_time_t(t);
22     f->dump_string("time", std::ctime(&epoch_time));
23   }
24   static void generate_test_instances(std::list<real_time_wrapper*>& ls) {
25     constexpr time_t t{455500800}; // Ghostbusters release date
26     ls.push_back(new real_time_wrapper(ceph::real_clock::from_time_t(t)));
27   }
28 };
29 WRITE_CLASS_ENCODER(real_time_wrapper)
30
31 #endif