]> git.proxmox.com Git - ceph.git/blob - ceph/src/rocksdb/logging/event_logger_test.cc
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / rocksdb / logging / event_logger_test.cc
1 // Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
2 // This source code is licensed under both the GPLv2 (found in the
3 // COPYING file in the root directory) and Apache 2.0 License
4 // (found in the LICENSE.Apache file in the root directory).
5
6 #include "logging/event_logger.h"
7
8 #include <string>
9
10 #include "test_util/testharness.h"
11
12 namespace ROCKSDB_NAMESPACE {
13
14 class EventLoggerTest : public testing::Test {};
15
16 class StringLogger : public Logger {
17 public:
18 using Logger::Logv;
19 void Logv(const char* format, va_list ap) override {
20 vsnprintf(buffer_, sizeof(buffer_), format, ap);
21 }
22 char* buffer() { return buffer_; }
23
24 private:
25 char buffer_[1000];
26 };
27
28 TEST_F(EventLoggerTest, SimpleTest) {
29 StringLogger logger;
30 EventLogger event_logger(&logger);
31 event_logger.Log() << "id" << 5 << "event"
32 << "just_testing";
33 std::string output(logger.buffer());
34 ASSERT_TRUE(output.find("\"event\": \"just_testing\"") != std::string::npos);
35 ASSERT_TRUE(output.find("\"id\": 5") != std::string::npos);
36 ASSERT_TRUE(output.find("\"time_micros\"") != std::string::npos);
37 }
38
39 } // namespace ROCKSDB_NAMESPACE
40
41 int main(int argc, char** argv) {
42 ROCKSDB_NAMESPACE::port::InstallStackTraceHandler();
43 ::testing::InitGoogleTest(&argc, argv);
44 return RUN_ALL_TESTS();
45 }