diff --git a/exporters/fluentd/test/trace/fluentd_recordable_test.cc b/exporters/fluentd/test/trace/fluentd_recordable_test.cc index 7739ad472..a6fc93695 100644 --- a/exporters/fluentd/test/trace/fluentd_recordable_test.cc +++ b/exporters/fluentd/test/trace/fluentd_recordable_test.cc @@ -380,11 +380,12 @@ TEST(FluentdExporter, SendTraceEvents) { auto processor = std::unique_ptr( new sdktrace::SimpleSpanProcessor(std::move(exporter))); - auto provider = nostd::shared_ptr( + auto provider = std::shared_ptr( new TracerProvider(std::move(processor))); + std::shared_ptr api_provider = provider; // Set the global trace provider - opentelemetry::trace::Provider::SetTracerProvider(provider); + opentelemetry::trace::Provider::SetTracerProvider(api_provider); std::string providerName = "MyInstrumentationName"; auto tracer = provider->GetTracer(providerName); @@ -426,8 +427,16 @@ TEST(FluentdExporter, SendTraceEvents) { } span1->End(); // end MySpanL1 +#if OPENTELEMETRY_ABI_VERSION_NO == 1 tracer->ForceFlushWithMicroseconds(1000); tracer->CloseWithMicroseconds(0); +#else + /* In ABI 2 >= otel-cpp v1.16.0, only the sdk Tracer objects + * have the ForceFlush...() and Close...() methods. The Close() + * method simply calls ForceFlush(). Use the SDK provider ForceFlush() instead. + */ + provider->ForceFlush(); +#endif /* OPENTELEMETRY_ABI_VERSION_NO == 1 */ testServer.WaitForEvents(6, 200); // 6 batches must arrive in 200ms testServer.Stop(); diff --git a/instrumentation/otel-webserver-module/test/unit/mocks/mock_OpenTelemetry.h b/instrumentation/otel-webserver-module/test/unit/mocks/mock_OpenTelemetry.h index 519bce667..eefbbc25c 100644 --- a/instrumentation/otel-webserver-module/test/unit/mocks/mock_OpenTelemetry.h +++ b/instrumentation/otel-webserver-module/test/unit/mocks/mock_OpenTelemetry.h @@ -52,8 +52,10 @@ class MockTracer : public opentelemetry::trace::Tracer MOCK_METHOD(nostd::shared_ptr, StartSpanInternal, (nostd::string_view name, trace::SpanKind kind)); +#if OPENTELEMETRY_ABI_VERSION_NO == 1 MOCK_METHOD(void, ForceFlushWithMicroseconds, (uint64_t timeout), (noexcept)); MOCK_METHOD(void, CloseWithMicroseconds, (uint64_t timeout), (noexcept)); +#endif /* OPENTELEMETRY_ABI_VERSION_NO == 1 */ }; class MockSpan : public opentelemetry::trace::Span @@ -100,10 +102,10 @@ class MockPropagator : public context::propagation::TextMapPropagator const context::Context &context) noexcept override { InjectImpl(carrier); } - + MOCK_METHOD(void, ExtractImpl, (const context::propagation::TextMapCarrier &carrier)); MOCK_METHOD(void, InjectImpl, (context::propagation::TextMapCarrier &carrier)); - MOCK_METHOD(bool, Fields, (nostd::function_ref callback), + MOCK_METHOD(bool, Fields, (nostd::function_ref callback), (const, noexcept, override)); };