Otherwise test can fail if the "should fail" lookup is resolved from a cached result. Signed-off-by: Angus Gratton <angus@redyak.com.au>
43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
# This is a regression test to ensure getaddrinfo() fails (after a timeout)
|
|
# when Wi-Fi is disconnected.
|
|
#
|
|
# It doesn't require multiple instances, but it does require Wi-Fi to be present
|
|
# but not active, and for no other network interface to be configured. The only
|
|
# tests which already meet these conditions is here in multi_wlan tests.
|
|
try:
|
|
from network import WLAN
|
|
except (ImportError, NameError):
|
|
print("SKIP")
|
|
raise SystemExit
|
|
|
|
import socket
|
|
|
|
|
|
def instance0():
|
|
WLAN(WLAN.IF_AP).active(0)
|
|
wlan = WLAN(WLAN.IF_STA)
|
|
wlan.active(0)
|
|
|
|
multitest.next()
|
|
|
|
# Note: Lookup domain for this test doesn't need to exist, as the board
|
|
# isn't internet connected. It also shouldn't exist, so a cached result is
|
|
# never returned!
|
|
try:
|
|
socket.getaddrinfo("doesnotexist.example.com", 80)
|
|
except OSError as er:
|
|
print(
|
|
"active(0) failed"
|
|
) # This may fail with code -6 or -2 depending on whether WLAN has been active since reset
|
|
|
|
wlan.active(1)
|
|
|
|
try:
|
|
socket.getaddrinfo("doesnotexist.example.com", 80)
|
|
except OSError as er:
|
|
print(
|
|
"active(1) failed", er.errno in (-2, -202)
|
|
) # This one should always be -2 or -202 depending on port
|
|
|
|
wlan.active(0)
|