| 118 | }; |
| 119 | |
| 120 | int test_tracing() { |
| 121 | |
| 122 | std::string recv_address("127.0.0.1:0/test"); |
| 123 | test_recv recv(recv_address); |
| 124 | proton::container c(recv); |
| 125 | |
| 126 | auto exporter = std::unique_ptr<opentelemetry::sdk::trace::SpanExporter>( |
| 127 | new opentelemetry::exporter::trace::OStreamSpanExporter()); |
| 128 | |
| 129 | auto processor = std::unique_ptr<opentelemetry::sdk::trace::SpanProcessor>( |
| 130 | new opentelemetry::sdk::trace::SimpleSpanProcessor(std::move(exporter))); |
| 131 | auto provider = opentelemetry::nostd::shared_ptr<opentelemetry::trace::TracerProvider>( |
| 132 | new opentelemetry::sdk::trace::TracerProvider(std::move(processor))); |
| 133 | |
| 134 | opentelemetry::trace::Provider::SetTracerProvider(provider); |
| 135 | |
| 136 | proton::initOpenTelemetryTracer(); |
| 137 | |
| 138 | std::thread thread_recv([&c]() -> void { c.run(); }); |
| 139 | |
| 140 | // wait until listener is ready |
| 141 | std::unique_lock<std::mutex> lk(m); |
| 142 | cv.wait(lk, [] { return listener_ready; }); |
| 143 | |
| 144 | std::string send_address = |
| 145 | "127.0.0.1:" + std::to_string(listener_port) + "/test"; |
| 146 | test_send send(send_address); |
| 147 | proton::container(send).run(); |
| 148 | thread_recv.join(); |
| 149 | |
| 150 | return 0; |
| 151 | } |
| 152 | |
| 153 | int main(int argc, char **argv) { |
| 154 | int failed = 0; |