// Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 #ifdef _WIN32 # include # include # 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