Skip to content

Commit

Permalink
Fix log sdk builder (open-telemetry#1486)
Browse files Browse the repository at this point in the history
Implemented code review comments,
added unit tests.
  • Loading branch information
marcalff committed Aug 1, 2022
1 parent 0595c68 commit f6ab143
Show file tree
Hide file tree
Showing 5 changed files with 140 additions and 2 deletions.
32 changes: 32 additions & 0 deletions exporters/otlp/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -329,6 +329,22 @@ cc_test(
],
)

cc_test(
name = "otlp_http_log_exporter_factory_test",
srcs = ["test/otlp_http_log_exporter_factory_test.cc"],
tags = [
"otlp",
"otlp_http_log",
"test",
],
deps = [
":otlp_http_log_exporter",
"//api",
"//ext/src/http/client/nosend:http_client_nosend",
"@com_google_googletest//:gtest_main",
],
)

cc_test(
name = "otlp_http_metric_exporter_test",
srcs = ["test/otlp_http_metric_exporter_test.cc"],
Expand Down Expand Up @@ -361,6 +377,22 @@ cc_test(
],
)

cc_test(
name = "otlp_grpc_log_exporter_factory_test",
srcs = ["test/otlp_grpc_log_exporter_factory_test.cc"],
tags = [
"otlp",
"otlp_grpc_log",
"test",
],
deps = [
":otlp_grpc_log_exporter",
"//api",
"//sdk/src/logs",
"@com_google_googletest//:gtest_main",
],
)

otel_cc_benchmark(
name = "otlp_grpc_exporter_benchmark",
srcs = ["test/otlp_grpc_exporter_benchmark.cc"],
Expand Down
22 changes: 22 additions & 0 deletions exporters/otlp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,17 @@ if(BUILD_TESTING)
TARGET otlp_grpc_log_exporter_test
TEST_PREFIX exporter.otlp.
TEST_LIST otlp_grpc_log_exporter_test)

add_executable(otlp_grpc_log_exporter_factory_test
test/otlp_grpc_log_exporter_factory_test.cc)
target_link_libraries(
otlp_grpc_log_exporter_factory_test ${GTEST_BOTH_LIBRARIES}
${CMAKE_THREAD_LIBS_INIT} ${GMOCK_LIB}
opentelemetry_exporter_otlp_grpc_log opentelemetry_logs)
gtest_add_tests(
TARGET otlp_grpc_log_exporter_factory_test
TEST_PREFIX exporter.otlp.
TEST_LIST otlp_grpc_log_exporter_factory_test)
endif()
endif()

Expand Down Expand Up @@ -256,6 +267,17 @@ if(BUILD_TESTING)
TARGET otlp_http_log_exporter_test
TEST_PREFIX exporter.otlp.
TEST_LIST otlp_http_log_exporter_test)

add_executable(otlp_http_log_exporter_factory_test
test/otlp_http_log_exporter_factory_test.cc)
target_link_libraries(
otlp_http_log_exporter_factory_test ${GTEST_BOTH_LIBRARIES}
${CMAKE_THREAD_LIBS_INIT} ${GMOCK_LIB}
opentelemetry_exporter_otlp_http_log opentelemetry_logs)
gtest_add_tests(
TARGET otlp_http_log_exporter_factory_test
TEST_PREFIX exporter.otlp.
TEST_LIST otlp_http_log_exporter_factory_test)
endif()

if(NOT WITH_METRICS_PREVIEW)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
#pragma once
#ifdef ENABLE_LOGS_PREVIEW

# include "opentelemetry/exporters/otlp/otlp_http_client.h"

# include "opentelemetry/exporters/otlp/otlp_environment.h"
# include "opentelemetry/exporters/otlp/otlp_http.h"
# include "opentelemetry/sdk/logs/exporter.h"

# include <chrono>
Expand Down
40 changes: 40 additions & 0 deletions exporters/otlp/test/otlp_grpc_log_exporter_factory_test.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

#ifdef ENABLE_LOGS_PREVIEW

# include <gtest/gtest.h>

# include "opentelemetry/exporters/otlp/otlp_grpc_exporter_options.h"
# include "opentelemetry/exporters/otlp/otlp_grpc_log_exporter_factory.h"

/*
Make sure OtlpGrpcLogExporterFactory does not require,
even indirectly, protobuf headers.
*/
# ifdef GOOGLE_PROTOBUF_VERSION
# error "protobuf should not be included"
# endif

OPENTELEMETRY_BEGIN_NAMESPACE
namespace exporter
{
namespace otlp
{

TEST(OtlpGrpcLogExporterFactoryTest, BuildTest)
{
OtlpGrpcExporterOptions opts;
opts.endpoint = "localhost:45454";

std::unique_ptr<opentelemetry::sdk::logs::LogExporter> exporter =
OtlpGrpcLogExporterFactory::Create(opts);

EXPECT_TRUE(exporter != nullptr);
}

} // namespace otlp
} // namespace exporter
OPENTELEMETRY_END_NAMESPACE

#endif // ENABLE_LOGS_PREVIEW
44 changes: 44 additions & 0 deletions exporters/otlp/test/otlp_http_log_exporter_factory_test.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

#include <gtest/gtest.h>

#include "opentelemetry/exporters/otlp/otlp_http_log_exporter_factory.h"
#include "opentelemetry/exporters/otlp/otlp_http_log_exporter_options.h"

/*
Make sure OtlpHttpExporterFactory does not require,
even indirectly, nlohmann/json headers.
*/
#ifdef NLOHMANN_JSON_VERSION_MAJOR
# error "nlohmann/json should not be included"
#endif /* NLOHMANN_JSON_VERSION_MAJOR */

/*
Make sure OtlpHttpExporterFactory does not require,
even indirectly, protobuf headers.
*/
#ifdef GOOGLE_PROTOBUF_VERSION
# error "protobuf should not be included"
#endif

OPENTELEMETRY_BEGIN_NAMESPACE
namespace exporter
{
namespace otlp
{

TEST(OtlpHttpLogExporterFactoryTest, BuildTest)
{
OtlpHttpLogExporterOptions opts;
opts.url = "localhost:45454";

std::unique_ptr<opentelemetry::sdk::logs::LogExporter> exporter =
OtlpHttpLogExporterFactory::Create(opts);

EXPECT_TRUE(exporter != nullptr);
}

} // namespace otlp
} // namespace exporter
OPENTELEMETRY_END_NAMESPACE

0 comments on commit f6ab143

Please sign in to comment.