]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/jaegertracing/opentelemetry-cpp/exporters/etw/test/etw_provider_test.cc
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / jaegertracing / opentelemetry-cpp / exporters / etw / test / etw_provider_test.cc
diff --git a/ceph/src/jaegertracing/opentelemetry-cpp/exporters/etw/test/etw_provider_test.cc b/ceph/src/jaegertracing/opentelemetry-cpp/exporters/etw/test/etw_provider_test.cc
new file mode 100644 (file)
index 0000000..d5ebbca
--- /dev/null
@@ -0,0 +1,64 @@
+// Copyright The OpenTelemetry Authors
+// SPDX-License-Identifier: Apache-2.0
+
+#ifdef _WIN32
+
+#  include <gtest/gtest.h>
+#  include <string>
+
+#  include "opentelemetry/exporters/etw/etw_provider.h"
+
+using namespace OPENTELEMETRY_NAMESPACE;
+
+TEST(ETWProvider, ProviderIsRegisteredSuccessfully)
+{
+  std::string providerName = "OpenTelemetry-ETW-Provider";
+  static ETWProvider etw;
+  auto handle = etw.open(providerName.c_str());
+
+  bool registered = etw.is_registered(providerName);
+  ASSERT_TRUE(registered);
+  etw.close(handle);
+}
+
+TEST(ETWProvider, ProviderIsNotRegisteredSuccessfully)
+{
+  std::string providerName = "OpenTelemetry-ETW-Provider-NULL";
+  static ETWProvider etw;
+
+  bool registered = etw.is_registered(providerName);
+  ASSERT_FALSE(registered);
+}
+
+TEST(ETWProvider, CheckOpenGUIDDataSuccessfully)
+{
+  std::string providerName = "OpenTelemetry-ETW-Provider";
+
+  // get GUID from the handle returned
+  static ETWProvider etw;
+  auto handle = etw.open(providerName.c_str());
+
+  utils::UUID uuid_handle(handle.providerGuid);
+  auto guidStrHandle = uuid_handle.to_string();
+
+  // get GUID from the providerName
+  auto guid = utils::GetProviderGuid(providerName.c_str());
+  utils::UUID uuid_name(guid);
+  auto guidStrName = uuid_name.to_string();
+
+  ASSERT_STREQ(guidStrHandle.c_str(), guidStrName.c_str());
+  etw.close(handle);
+}
+
+TEST(ETWProvider, CheckCloseSuccess)
+{
+  std::string providerName = "OpenTelemetry-ETW-Provider";
+
+  static ETWProvider etw;
+  auto handle = etw.open(providerName.c_str(), ETWProvider::EventFormat::ETW_MANIFEST);
+  auto result = etw.close(handle);
+  ASSERT_NE(result, etw.STATUS_ERROR);
+  ASSERT_FALSE(etw.is_registered(providerName));
+}
+
+#endif