event_logger_test.cc 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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. #include "logging/event_logger.h"
  6. #include <string>
  7. #include "test_util/testharness.h"
  8. namespace ROCKSDB_NAMESPACE {
  9. class EventLoggerTest : public testing::Test {};
  10. class StringLogger : public Logger {
  11. public:
  12. using Logger::Logv;
  13. void Logv(const char* format, va_list ap) override {
  14. vsnprintf(buffer_, sizeof(buffer_), format, ap);
  15. }
  16. char* buffer() { return buffer_; }
  17. private:
  18. char buffer_[1000];
  19. };
  20. TEST_F(EventLoggerTest, SimpleTest) {
  21. StringLogger logger;
  22. EventLogger event_logger(&logger);
  23. event_logger.Log() << "id" << 5 << "event" << "just_testing";
  24. std::string output(logger.buffer());
  25. ASSERT_TRUE(output.find("\"event\": \"just_testing\"") != std::string::npos);
  26. ASSERT_TRUE(output.find("\"id\": 5") != std::string::npos);
  27. ASSERT_TRUE(output.find("\"time_micros\"") != std::string::npos);
  28. }
  29. } // namespace ROCKSDB_NAMESPACE
  30. int main(int argc, char** argv) {
  31. ROCKSDB_NAMESPACE::port::InstallStackTraceHandler();
  32. ::testing::InitGoogleTest(&argc, argv);
  33. return RUN_ALL_TESTS();
  34. }