10
10
11
11
import dpkt
12
12
import dpkt .dns
13
- import ttfw_idf
14
- from tiny_test_fw .Utility import console_log
13
+ import pytest
15
14
16
15
UDP_PORT = 5353
17
16
MCAST_GRP = '224.0.0.251'
37
36
esp_delegated_host_answered = Event ()
38
37
39
38
39
+ @pytest .mark .skip
40
40
# Get query of ESP32-WebServer._http._tcp.local service
41
41
def get_mdns_service_query (service ): # type:(str) -> dpkt.dns.Msg
42
42
dns = dpkt .dns .DNS ()
@@ -49,10 +49,11 @@ def get_mdns_service_query(service): # type:(str) -> dpkt.dns.Msg
49
49
arr .target = socket .inet_aton ('127.0.0.1' )
50
50
arr .srvname = service
51
51
dns .qd .append (arr )
52
- console_log ('Created mdns service query: {} ' .format (dns .__repr__ ()))
52
+ print ('Created mdns service query: {} ' .format (dns .__repr__ ()))
53
53
return dns .pack ()
54
54
55
55
56
+ @pytest .mark .skip
56
57
# Get query of _server_.sub._http._tcp.local sub service
57
58
def get_mdns_sub_service_query (sub_service ): # type:(str) -> dpkt.dns.Msg
58
59
dns = dpkt .dns .DNS ()
@@ -65,22 +66,23 @@ def get_mdns_sub_service_query(sub_service): # type:(str) -> dpkt.dns.Msg
65
66
arr .target = socket .inet_aton ('127.0.0.1' )
66
67
arr .ptrname = sub_service
67
68
dns .qd .append (arr )
68
- console_log ('Created mdns subtype service query: {} ' .format (
69
- dns .__repr__ ()))
69
+ print ('Created mdns subtype service query: {} ' .format (dns .__repr__ ()))
70
70
return dns .pack ()
71
71
72
72
73
+ @pytest .mark .skip
73
74
# Get query for host resolution
74
75
def get_dns_query_for_esp (esp_host ): # type:(str) -> dpkt.dns.Msg
75
76
dns = dpkt .dns .DNS ()
76
77
arr = dpkt .dns .DNS .RR ()
77
78
arr .cls = dpkt .dns .DNS_IN
78
79
arr .name = esp_host + u'.local'
79
80
dns .qd .append (arr )
80
- console_log ('Created query for esp host: {} ' .format (dns .__repr__ ()))
81
+ print ('Created query for esp host: {} ' .format (dns .__repr__ ()))
81
82
return dns .pack ()
82
83
83
84
85
+ @pytest .mark .skip
84
86
# Get mdns answer for host resoloution
85
87
def get_dns_answer_to_mdns (tester_host ): # type:(str) -> dpkt.dns.Msg
86
88
dns = dpkt .dns .DNS ()
@@ -92,10 +94,11 @@ def get_dns_answer_to_mdns(tester_host): # type:(str) -> dpkt.dns.Msg
92
94
arr .name = tester_host
93
95
arr .ip = socket .inet_aton ('127.0.0.1' )
94
96
dns .an .append (arr )
95
- console_log ('Created answer to mdns query: {} ' .format (dns .__repr__ ()))
97
+ print ('Created answer to mdns query: {} ' .format (dns .__repr__ ()))
96
98
return dns .pack ()
97
99
98
100
101
+ @pytest .mark .skip
99
102
# Get mdns answer for service query
100
103
def get_dns_answer_to_service_query (
101
104
mdns_service ): # type:(str) -> dpkt.dns.Msg
@@ -112,10 +115,11 @@ def get_dns_answer_to_service_query(
112
115
arr .srvname = mdns_service
113
116
arr .ip = socket .inet_aton ('127.0.0.1' )
114
117
dns .an .append (arr )
115
- console_log ('Created answer to mdns query: {} ' .format (dns .__repr__ ()))
118
+ print ('Created answer to mdns query: {} ' .format (dns .__repr__ ()))
116
119
return dns .pack ()
117
120
118
121
122
+ @pytest .mark .skip
119
123
def mdns_listener (esp_host ): # type:(str) -> None
120
124
print ('mdns_listener thread started' )
121
125
@@ -145,48 +149,45 @@ def mdns_listener(esp_host): # type:(str) -> None
145
149
# Receives queries from esp board and sends answers
146
150
if len (dns .qd ) > 0 :
147
151
if dns .qd [0 ].name == HOST_NAME :
148
- console_log ('Received query: {} ' .format (dns .__repr__ ()))
152
+ print ('Received query: {} ' .format (dns .__repr__ ()))
149
153
sock .sendto (get_dns_answer_to_mdns (HOST_NAME ),
150
154
(MCAST_GRP , UDP_PORT ))
151
155
if dns .qd [0 ].name == HOST_NAME :
152
- console_log ('Received query: {} ' .format (dns .__repr__ ()))
156
+ print ('Received query: {} ' .format (dns .__repr__ ()))
153
157
sock .sendto (get_dns_answer_to_mdns (HOST_NAME ),
154
158
(MCAST_GRP , UDP_PORT ))
155
159
if dns .qd [0 ].name == MDNS_HOST_SERVICE :
156
- print (dns .qd [0 ].name )
157
- console_log ('Received query: {} ' .format (dns .__repr__ ()))
160
+ print ('Received query: {} ' .format (dns .__repr__ ()))
158
161
sock .sendto (
159
162
get_dns_answer_to_service_query (MDNS_HOST_SERVICE ),
160
163
(MCAST_GRP , UDP_PORT ))
161
164
# Receives answers from esp board and sets event flags for python test cases
162
165
if len (dns .an ) == 1 :
163
166
if dns .an [0 ].name .startswith (SERVICE_NAME ):
164
- console_log ('Received answer to service query: {}' .format (
167
+ print ('Received answer to service query: {}' .format (
165
168
dns .__repr__ ()))
166
169
esp_service_answered .set ()
167
170
if len (dns .an ) > 1 :
168
171
if dns .an [1 ].name .startswith (SUB_SERVICE_NAME ):
169
- console_log (
170
- 'Received answer for sub service query: {}' .format (
171
- dns .__repr__ ()))
172
+ print ('Received answer for sub service query: {}' .format (
173
+ dns .__repr__ ()))
172
174
esp_sub_service_answered .set ()
173
175
if len (dns .an ) > 0 and dns .an [0 ].type == dpkt .dns .DNS_A :
174
176
if dns .an [0 ].name == esp_host + u'.local' :
175
- console_log (
176
- 'Received answer to esp32-mdns query: {}' .format (
177
- dns .__repr__ ()))
177
+ print ('Received answer to esp32-mdns query: {}' .format (
178
+ dns .__repr__ ()))
178
179
esp_host_answered .set ()
179
180
if dns .an [0 ].name == esp_host + u'-delegated.local' :
180
- console_log (
181
- 'Received answer to esp32-mdns-delegate query: {}' .
182
- format (dns .__repr__ ()))
181
+ print ('Received answer to esp32-mdns-delegate query: {}' .
182
+ format (dns .__repr__ ()))
183
183
esp_delegated_host_answered .set ()
184
184
except socket .timeout :
185
185
break
186
186
except dpkt .UnpackError :
187
187
continue
188
188
189
189
190
+ @pytest .mark .skip
190
191
def create_socket (): # type:() -> socket.socket
191
192
UDP_IP = '0.0.0.0'
192
193
sock = socket .socket (socket .AF_INET , socket .SOCK_DGRAM )
@@ -199,6 +200,7 @@ def create_socket(): # type:() -> socket.socket
199
200
return sock
200
201
201
202
203
+ @pytest .mark .skip
202
204
def test_query_dns_http_service (service ): # type: (str) -> None
203
205
print ('SRV: Query {}' .format (service ))
204
206
sock = create_socket ()
@@ -212,6 +214,7 @@ def test_query_dns_http_service(service): # type: (str) -> None
212
214
'Test has failed: did not receive mdns answer within timeout' )
213
215
214
216
217
+ @pytest .mark .skip
215
218
def test_query_dns_sub_service (sub_service ): # type: (str) -> None
216
219
print ('PTR: Query {}' .format (sub_service ))
217
220
sock = create_socket ()
@@ -225,6 +228,7 @@ def test_query_dns_sub_service(sub_service): # type: (str) -> None
225
228
'Test has failed: did not receive mdns answer within timeout' )
226
229
227
230
231
+ @pytest .mark .skip
228
232
def test_query_dns_host (esp_host ): # type: (str) -> None
229
233
print ('A: {}' .format (esp_host ))
230
234
sock = create_socket ()
@@ -238,6 +242,7 @@ def test_query_dns_host(esp_host): # type: (str) -> None
238
242
'Test has failed: did not receive mdns answer within timeout' )
239
243
240
244
245
+ @pytest .mark .skip
241
246
def test_query_dns_host_delegated (esp_host ): # type: (str) -> None
242
247
print ('A: {}' .format (esp_host ))
243
248
sock = create_socket ()
@@ -251,29 +256,30 @@ def test_query_dns_host_delegated(esp_host): # type: (str) -> None
251
256
'Test has failed: did not receive mdns answer within timeout' )
252
257
253
258
254
- @ttfw_idf . idf_custom_test ( env_tag = 'Example_WIFI' , group = 'test-apps' )
255
- def test_app_esp_mdns ( env , _ ): # type: (ttfw_idf.TinyFW.Env, None) -> None
256
- dut1 = env . get_dut ( 'mdns' ,
257
- 'tools/test_apps/protocols/mdns' ,
258
- dut_class = ttfw_idf . ESP32DUT )
259
+ @pytest . mark . esp32
260
+ @ pytest . mark . esp32s2
261
+ @ pytest . mark . esp32c3
262
+ @ pytest . mark . generic
263
+ def test_app_esp_mdns ( dut ):
259
264
260
- # 1. start mdns application
261
- dut1 .start_app ()
262
- # 2. get the dut host name (and IP address)
263
- specific_host = dut1 .expect (
264
- re .compile (r'mdns hostname set to: \[([^\]]+)\]' ), timeout = 30 )[0 ]
265
+ # 1. get the dut host name (and IP address)
266
+ specific_host = dut .expect (
267
+ re .compile (b'mdns hostname set to: \[([^\]]+)\]' ), # noqa: W605
268
+ timeout = 30 ).group (1 ).decode ()
265
269
266
- esp_ip = dut1 .expect (
267
- re .compile (r' IPv4 address: ([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)' ),
268
- timeout = 30 )
269
- print ('Got IP={}' .format (esp_ip [0 ]))
270
+ esp_ip = dut .expect (
271
+ re .compile (
272
+ b' IPv4 address: ([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)' ), # noqa: W605
273
+ timeout = 30 ).group (1 ).decode ()
274
+ print ('Got IP={}' .format (esp_ip ))
270
275
271
276
mdns_responder = Thread (target = mdns_listener , args = (str (specific_host ), ))
272
277
273
278
def start_case (case , desc , result ): # type: (str, str, str) -> None
274
279
print ('Starting {}: {}' .format (case , desc ))
275
- dut1 .write (case )
276
- dut1 .expect (re .compile (result ), timeout = 30 )
280
+ dut .write (case )
281
+ res = bytes (result , encoding = 'utf8' )
282
+ dut .expect (re .compile (res ), timeout = 30 )
277
283
278
284
try :
279
285
# start dns listener thread
@@ -312,7 +318,3 @@ def start_case(case, desc, result): # type: (str, str, str) -> None
312
318
finally :
313
319
stop_mdns_listener .set ()
314
320
mdns_responder .join ()
315
-
316
-
317
- if __name__ == '__main__' :
318
- test_app_esp_mdns ()
0 commit comments