ZeroTierOne/ext/opentelemetry-cpp-1.21.0/exporters/etw/test/etw_provider_test.cc
2025-07-11 10:37:21 -07:00

64 lines
1.6 KiB
C++

// 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