self.assertTrue(msg)
self.assertTrue(msg.HasField("openTelemetry"))
- def sendQueryAndGetProtobuf(self):
+ def sendQueryAndGetProtobuf(self, useTCP=False):
name = "query.ot.tests.powerdns.com."
target = "target.ot.tests.powerdns.com."
)
response.answer.append(rrset)
- (receivedQuery, receivedResponse) = self.sendUDPQuery(query, response)
+ if useTCP:
+ (receivedQuery, receivedResponse) = self.sendTCPQuery(query, response)
+ else:
+ (receivedQuery, receivedResponse) = self.sendUDPQuery(query, response)
+
self.assertTrue(receivedQuery)
self.assertTrue(receivedResponse)
receivedQuery.id = query.id
class DNSDistOpenTelemetryProtobufBaseTest(DNSDistOpenTelemetryProtobufTest):
- def doTest(self, wasDelayed=False):
- msg = self.sendQueryAndGetProtobuf()
+ def doTest(self, wasDelayed=False, useTCP=False):
+ msg = self.sendQueryAndGetProtobuf(useTCP)
self.assertTrue(msg.HasField("openTelemetryTraceID"))
self.assertTrue(msg.openTelemetryTraceID != "")
root_span_attrs,
)
- msg_span_name = [
+ msg_span_name = {
v["name"] for v in ot_data["resource_spans"][0]["scope_spans"][0]["spans"]
- ]
+ }
- funcs = [
- "processUDPQuery",
+ funcs = {
"processQuery",
"applyRulesToQuery",
"selectBackendForOutgoingQuery",
- "assignOutgoingUDPQueryToBackend",
"processResponse",
"applyRulesToResponse",
- ]
+ }
+
+ if useTCP:
+ funcs.add("IncomingTCPConnectionState::handleQuery")
+ else:
+ funcs.add("processUDPQuery")
+ funcs.add("assignOutgoingUDPQueryToBackend")
if wasDelayed:
- funcs.append("processResponseAfterRules")
+ funcs.add("processResponseAfterRules")
- self.assertListEqual(msg_span_name, funcs)
+ self.assertSetEqual(msg_span_name, funcs)
traceId = base64.b64encode(msg.openTelemetryTraceID).decode()
for msg_span in ot_data["resource_spans"][0]["scope_spans"][0]["spans"]:
def testBasic(self):
self.doTest()
+ def testTCP(self):
+ self.doTest(useTCP=True)
+
class TestOpenTelemetryTracingBaseLua(DNSDistOpenTelemetryProtobufBaseTest):
_config_params = [
def testBasic(self):
self.doTest()
+ def testTCP(self):
+ self.doTest(useTCP=True)
+
class TestOpenTelemetryTracingBaseDelayYAML(DNSDistOpenTelemetryProtobufBaseTest):
_yaml_config_params = [
def testBasic(self):
self.doTest(True)
+ def testTCP(self):
+ self.doTest(wasDelayed=True, useTCP=True)
+
class TestOpenTelemetryTracingBaseDelayLua(DNSDistOpenTelemetryProtobufBaseTest):
_config_params = [
def testBasic(self):
self.doTest(True)
+ def testTCP(self):
+ self.doTest(wasDelayed=True, useTCP=True)
+
class DNSDistOpenTelemetryProtobufNoOTDataTest(DNSDistOpenTelemetryProtobufTest):
def doTest(self):