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..d569df9e1 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