etw_provider_test.cc 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. // Copyright The OpenTelemetry Authors
  2. // SPDX-License-Identifier: Apache-2.0
  3. #ifdef _WIN32
  4. # include <gtest/gtest.h>
  5. # include <string>
  6. # include "opentelemetry/exporters/etw/etw_provider.h"
  7. using namespace OPENTELEMETRY_NAMESPACE;
  8. TEST(ETWProvider, ProviderIsRegisteredSuccessfully)
  9. {
  10. std::string providerName = "OpenTelemetry-ETW-Provider";
  11. static ETWProvider etw;
  12. auto handle = etw.open(providerName.c_str());
  13. bool registered = etw.is_registered(providerName);
  14. ASSERT_TRUE(registered);
  15. etw.close(handle);
  16. }
  17. TEST(ETWProvider, ProviderIsNotRegisteredSuccessfully)
  18. {
  19. std::string providerName = "OpenTelemetry-ETW-Provider-NULL";
  20. static ETWProvider etw;
  21. bool registered = etw.is_registered(providerName);
  22. ASSERT_FALSE(registered);
  23. }
  24. TEST(ETWProvider, CheckOpenGUIDDataSuccessfully)
  25. {
  26. std::string providerName = "OpenTelemetry-ETW-Provider";
  27. // get GUID from the handle returned
  28. static ETWProvider etw;
  29. auto handle = etw.open(providerName.c_str());
  30. utils::UUID uuid_handle(handle.providerGuid);
  31. auto guidStrHandle = uuid_handle.to_string();
  32. // get GUID from the providerName
  33. auto guid = utils::GetProviderGuid(providerName.c_str());
  34. utils::UUID uuid_name(guid);
  35. auto guidStrName = uuid_name.to_string();
  36. ASSERT_STREQ(guidStrHandle.c_str(), guidStrName.c_str());
  37. etw.close(handle);
  38. }
  39. TEST(ETWProvider, CheckCloseSuccess)
  40. {
  41. std::string providerName = "OpenTelemetry-ETW-Provider";
  42. static ETWProvider etw;
  43. auto handle = etw.open(providerName.c_str(), ETWProvider::EventFormat::ETW_MANIFEST);
  44. auto result = etw.close(handle);
  45. ASSERT_NE(result, etw.STATUS_ERROR);
  46. ASSERT_FALSE(etw.is_registered(providerName));
  47. }
  48. #endif