Skip to content

Commit fc50aae

Browse files
committed
verify more in tests
1 parent 8470609 commit fc50aae

2 files changed

Lines changed: 52 additions & 5 deletions

File tree

sdk/include/opentelemetry/sdk/trace/multi_span_processor.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,9 @@ class MultiSpanProcessor : public SpanProcessor
194194
ProcessorNode *head_{nullptr};
195195
ProcessorNode *tail_{nullptr};
196196
size_t count_{0};
197+
198+
// For testing
199+
friend class MultiSpanProcessorTestPeer;
197200
};
198201
} // namespace trace
199202
} // namespace sdk

sdk/test/trace/tracer_provider_test.cc

Lines changed: 49 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,34 @@
3939
using namespace opentelemetry::sdk::trace;
4040
using namespace opentelemetry::sdk::resource;
4141

42+
OPENTELEMETRY_BEGIN_NAMESPACE
43+
namespace sdk
44+
{
45+
namespace trace
46+
{
47+
class MultiSpanProcessorTestPeer
48+
{
49+
public:
50+
static
51+
std::vector<SpanProcessor*> GetProcessors(MultiSpanProcessor * multi_span_processor)
52+
{
53+
std::vector<SpanProcessor*> res;
54+
55+
MultiSpanProcessor::ProcessorNode *node = multi_span_processor->head_;
56+
while (node != nullptr)
57+
{
58+
auto processor = node->value_.get();
59+
res.emplace_back(processor);
60+
node = node->next_;
61+
}
62+
63+
return res;
64+
}
65+
};
66+
}
67+
}
68+
OPENTELEMETRY_END_NAMESPACE
69+
4270
TEST(TracerProvider, GetTracer)
4371
{
4472
std::unique_ptr<SpanProcessor> processor(new SimpleSpanProcessor(nullptr));
@@ -342,8 +370,13 @@ TEST(TracerProvider, GetProcessor)
342370
// get a MultiSpanProcessor back that wraps both processors
343371
TEST(TracerProvider, GetProcessorsTwo)
344372
{
345-
std::unique_ptr<SpanProcessor> processor1(new SimpleSpanProcessor(nullptr));
346-
std::unique_ptr<SpanProcessor> processor2(new SimpleSpanProcessor(nullptr));
373+
std::vector<SpanProcessor*> processors_raw(2);
374+
processors_raw[0] = new SimpleSpanProcessor(nullptr); // deleted via unique_ptr
375+
processors_raw[1] = new SimpleSpanProcessor(nullptr); // deleted via unique_ptr
376+
377+
std::unique_ptr<SpanProcessor> processor1(processors_raw[0]);
378+
std::unique_ptr<SpanProcessor> processor2(processors_raw[1]);
379+
347380
std::vector<std::unique_ptr<SpanProcessor>> processors;
348381
processors.push_back(std::move(processor1));
349382
processors.push_back(std::move(processor2));
@@ -359,14 +392,22 @@ TEST(TracerProvider, GetProcessorsTwo)
359392
auto processor_typeed = static_cast<MultiSpanProcessor *>(&span_processor);
360393
#endif
361394
ASSERT_NE(nullptr, processor_typeed);
395+
396+
std::vector<SpanProcessor*> contained_processors = MultiSpanProcessorTestPeer::GetProcessors(processor_typeed);
397+
EXPECT_EQ(processors_raw, contained_processors);
362398
}
363399

364400
// get a MultiSpanProcessor back that wraps all three processors
365401
TEST(TracerProvider, GetProcessorsThree)
366402
{
367-
std::unique_ptr<SpanProcessor> processor1(new SimpleSpanProcessor(nullptr));
368-
std::unique_ptr<SpanProcessor> processor2(new SimpleSpanProcessor(nullptr));
369-
std::unique_ptr<SpanProcessor> processor3(new SimpleSpanProcessor(nullptr));
403+
std::vector<SpanProcessor*> processors_raw(3);
404+
processors_raw[0] = new SimpleSpanProcessor(nullptr); // deleted via unique_ptr
405+
processors_raw[1] = new SimpleSpanProcessor(nullptr); // deleted via unique_ptr
406+
processors_raw[2] = new SimpleSpanProcessor(nullptr); // deleted via unique_ptr
407+
408+
std::unique_ptr<SpanProcessor> processor1(processors_raw[0]);
409+
std::unique_ptr<SpanProcessor> processor2(processors_raw[1]);
410+
std::unique_ptr<SpanProcessor> processor3(processors_raw[2]);
370411
std::vector<std::unique_ptr<SpanProcessor>> processors;
371412
processors.push_back(std::move(processor1));
372413
processors.push_back(std::move(processor2));
@@ -383,6 +424,9 @@ TEST(TracerProvider, GetProcessorsThree)
383424
auto processor_typeed = static_cast<MultiSpanProcessor *>(&span_processor);
384425
#endif
385426
ASSERT_NE(nullptr, processor_typeed);
427+
428+
std::vector<SpanProcessor*> contained_processors = MultiSpanProcessorTestPeer::GetProcessors(processor_typeed);
429+
EXPECT_EQ(processors_raw, contained_processors);
386430
}
387431

388432
TEST(TracerProvider, Shutdown)

0 commit comments

Comments
 (0)