mirror of
https://github.com/espressif/esp-idf.git
synced 2026-10-02 11:10:54 +03:00
fix(openthread): optimize the process of openthread pytest cases
This commit is contained in:
@@ -91,7 +91,7 @@ class wifi_parameter:
|
|||||||
self.retry_times = retry_times
|
self.retry_times = retry_times
|
||||||
|
|
||||||
|
|
||||||
def joinThreadNetwork(dut: IdfDut, thread: thread_parameter) -> None:
|
def SetThreadNetworkPara(dut: IdfDut, thread: thread_parameter) -> None:
|
||||||
if thread.dataset:
|
if thread.dataset:
|
||||||
command = 'dataset set active ' + thread.dataset
|
command = 'dataset set active ' + thread.dataset
|
||||||
execute_command(dut, command)
|
execute_command(dut, command)
|
||||||
@@ -129,6 +129,9 @@ def joinThreadNetwork(dut: IdfDut, thread: thread_parameter) -> None:
|
|||||||
dut.expect('Done', timeout=5)
|
dut.expect('Done', timeout=5)
|
||||||
execute_command(dut, 'dataset commit active')
|
execute_command(dut, 'dataset commit active')
|
||||||
dut.expect('Done', timeout=5)
|
dut.expect('Done', timeout=5)
|
||||||
|
|
||||||
|
|
||||||
|
def StartThreadNetwork(dut: IdfDut, thread: thread_parameter) -> None:
|
||||||
if thread.bbr:
|
if thread.bbr:
|
||||||
execute_command(dut, 'bbr enable')
|
execute_command(dut, 'bbr enable')
|
||||||
dut.expect('Done', timeout=5)
|
dut.expect('Done', timeout=5)
|
||||||
@@ -159,7 +162,7 @@ def joinWiFiNetwork(dut: IdfDut, wifi: wifi_parameter) -> Tuple[str, int]:
|
|||||||
ip_address = ''
|
ip_address = ''
|
||||||
for order in range(1, wifi.retry_times):
|
for order in range(1, wifi.retry_times):
|
||||||
command = 'wifi connect -s ' + str(wifi.ssid) + ' -p ' + str(wifi.psk)
|
command = 'wifi connect -s ' + str(wifi.ssid) + ' -p ' + str(wifi.psk)
|
||||||
tmp = get_ouput_string(dut, command, 10)
|
tmp = get_output_string(dut, command, 10)
|
||||||
if 'sta ip' in str(tmp):
|
if 'sta ip' in str(tmp):
|
||||||
ip_address = re.findall(r'sta ip: (\w+.\w+.\w+.\w+),', str(tmp))[0]
|
ip_address = re.findall(r'sta ip: (\w+.\w+.\w+.\w+),', str(tmp))[0]
|
||||||
wait(dut, 2)
|
wait(dut, 2)
|
||||||
@@ -364,11 +367,19 @@ def check_if_host_receive_ra(br: IdfDut) -> bool:
|
|||||||
interface_name = get_host_interface_name()
|
interface_name = get_host_interface_name()
|
||||||
clean_buffer(br)
|
clean_buffer(br)
|
||||||
omrprefix = get_omrprefix(br)
|
omrprefix = get_omrprefix(br)
|
||||||
command = 'ip -6 route | grep ' + str(interface_name)
|
onlinkprefix = get_onlinkprefix(br)
|
||||||
|
command = f'ip -6 route show dev {interface_name}'
|
||||||
out_str = subprocess.getoutput(command)
|
out_str = subprocess.getoutput(command)
|
||||||
logging.info(f'br omrprefix: {omrprefix}')
|
has_omr_route = str(omrprefix) in str(out_str)
|
||||||
logging.info(f'host route table:\n {out_str}')
|
has_onlink_gua = host_global_address_has_onlink_prefix(interface_name, onlinkprefix)
|
||||||
return str(omrprefix) in str(out_str)
|
logging.info(
|
||||||
|
'RA check: omrprefix=%s onlinkprefix=%s has_omr_route=%s has_onlink_gua=%s',
|
||||||
|
omrprefix,
|
||||||
|
onlinkprefix,
|
||||||
|
has_omr_route,
|
||||||
|
has_onlink_gua,
|
||||||
|
)
|
||||||
|
return has_omr_route and has_onlink_gua
|
||||||
|
|
||||||
|
|
||||||
def host_connect_wifi() -> None:
|
def host_connect_wifi() -> None:
|
||||||
@@ -393,14 +404,16 @@ def wait_for_host_ra_route(
|
|||||||
for attempt in range(1, retries + 1):
|
for attempt in range(1, retries + 1):
|
||||||
if is_joined_wifi_network(br):
|
if is_joined_wifi_network(br):
|
||||||
log_ipv6_addr_route_by_interface(interface_name, title='RA Ready!')
|
log_ipv6_addr_route_by_interface(interface_name, title='RA Ready!')
|
||||||
|
logging.info(f'Host RA is ready on attempt {attempt}/{retries}.')
|
||||||
return
|
return
|
||||||
|
|
||||||
logging.info(f'Host route not ready yet, retry {attempt}/{retries}...')
|
logging.info(f'Host RA not ready yet, retry {attempt}/{retries}...')
|
||||||
log_ipv6_addr_route_by_interface(interface_name, title=f'Wait RA ({attempt}/{retries})')
|
log_ipv6_addr_route_by_interface(interface_name, title=f'Wait RA ({attempt}/{retries})')
|
||||||
|
if attempt < retries:
|
||||||
|
time.sleep(interval_s)
|
||||||
|
|
||||||
time.sleep(interval_s)
|
log_ipv6_addr_route_by_interface(interface_name, title='RA check failed')
|
||||||
|
raise AssertionError('Host did not receive valid RA in time (OMR route and onlink GUA both required)')
|
||||||
raise AssertionError('Host did not receive RA / OMR route in time')
|
|
||||||
|
|
||||||
|
|
||||||
def host_global_address_has_onlink_prefix(interface_name: str, onlinkprefix: str) -> bool:
|
def host_global_address_has_onlink_prefix(interface_name: str, onlinkprefix: str) -> bool:
|
||||||
@@ -439,17 +452,17 @@ def wait_for_host_onlink_global_address(
|
|||||||
interface_name = get_host_interface_name()
|
interface_name = get_host_interface_name()
|
||||||
onlinkprefix = get_onlinkprefix(br)
|
onlinkprefix = get_onlinkprefix(br)
|
||||||
logging.info(f'Wait for host GUA in BR onlink prefix {onlinkprefix!r} on {interface_name}')
|
logging.info(f'Wait for host GUA in BR onlink prefix {onlinkprefix!r} on {interface_name}')
|
||||||
log_ipv6_addr_route_by_interface(interface_name, title='Wait onlink GUA (initial)')
|
|
||||||
|
|
||||||
for attempt in range(1, retries + 1):
|
for attempt in range(1, retries + 1):
|
||||||
if host_global_address_has_onlink_prefix(interface_name, onlinkprefix):
|
if host_global_address_has_onlink_prefix(interface_name, onlinkprefix):
|
||||||
log_ipv6_addr_route_by_interface(interface_name, title='Onlink GUA ready!')
|
logging.info(f'Host onlink GUA is ready on attempt {attempt}/{retries}.')
|
||||||
return onlinkprefix
|
return onlinkprefix
|
||||||
|
|
||||||
logging.info(f'Host onlink GUA not ready yet, retry {attempt}/{retries}...')
|
logging.info(f'Host onlink GUA not ready yet, retry {attempt}/{retries}...')
|
||||||
log_ipv6_addr_route_by_interface(interface_name, title=f'Wait onlink GUA ({attempt}/{retries})')
|
if attempt < retries:
|
||||||
time.sleep(interval_s)
|
time.sleep(interval_s)
|
||||||
|
|
||||||
|
log_ipv6_addr_route_by_interface(interface_name, title='Onlink GUA check failed')
|
||||||
raise AssertionError(f'Host did not get a global IPv6 address in onlink prefix {onlinkprefix!r} in time')
|
raise AssertionError(f'Host did not get a global IPv6 address in onlink prefix {onlinkprefix!r} in time')
|
||||||
|
|
||||||
|
|
||||||
@@ -457,7 +470,7 @@ thread_ipv6_group = 'ff04:0:0:0:0:0:0:125'
|
|||||||
|
|
||||||
|
|
||||||
def check_ipmaddr(dut: IdfDut) -> bool:
|
def check_ipmaddr(dut: IdfDut) -> bool:
|
||||||
info = get_ouput_string(dut, 'ipmaddr', 2)
|
info = get_output_string(dut, 'ipmaddr', 2)
|
||||||
if thread_ipv6_group in str(info):
|
if thread_ipv6_group in str(info):
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
@@ -775,7 +788,7 @@ def execute_command(dut: IdfDut, command: str, prefix: str = 'ot ') -> None:
|
|||||||
dut.write(prefix + command)
|
dut.write(prefix + command)
|
||||||
|
|
||||||
|
|
||||||
def get_ouput_string(dut: IdfDut, command: str, wait_time: int) -> str:
|
def get_output_string(dut: IdfDut, command: str, wait_time: int) -> str:
|
||||||
execute_command(dut, command)
|
execute_command(dut, command)
|
||||||
tmp = dut.expect(pexpect.TIMEOUT, timeout=wait_time)
|
tmp = dut.expect(pexpect.TIMEOUT, timeout=wait_time)
|
||||||
clean_buffer(dut)
|
clean_buffer(dut)
|
||||||
|
|||||||
@@ -126,7 +126,8 @@ def test_thread_connect(dut: Tuple[IdfDut, IdfDut, IdfDut]) -> None:
|
|||||||
for cli in cli_list:
|
for cli in cli_list:
|
||||||
ocf.init_thread(cli)
|
ocf.init_thread(cli)
|
||||||
br_ot_para = copy.copy(default_br_ot_para)
|
br_ot_para = copy.copy(default_br_ot_para)
|
||||||
ocf.joinThreadNetwork(br, br_ot_para)
|
ocf.SetThreadNetworkPara(br, br_ot_para)
|
||||||
|
ocf.StartThreadNetwork(br, br_ot_para)
|
||||||
cli_ot_para = copy.copy(default_cli_ot_para)
|
cli_ot_para = copy.copy(default_cli_ot_para)
|
||||||
cli_ot_para.dataset = ocf.getDataset(br)
|
cli_ot_para.dataset = ocf.getDataset(br)
|
||||||
try:
|
try:
|
||||||
@@ -134,7 +135,8 @@ def test_thread_connect(dut: Tuple[IdfDut, IdfDut, IdfDut]) -> None:
|
|||||||
for cli in cli_list:
|
for cli in cli_list:
|
||||||
cli_ot_para.exaddr = router_extaddr_list[order]
|
cli_ot_para.exaddr = router_extaddr_list[order]
|
||||||
order = order + 1
|
order = order + 1
|
||||||
ocf.joinThreadNetwork(cli, cli_ot_para)
|
ocf.SetThreadNetworkPara(cli, cli_ot_para)
|
||||||
|
ocf.StartThreadNetwork(cli, cli_ot_para)
|
||||||
for cli in cli_list:
|
for cli in cli_list:
|
||||||
cli_mleid_addr = ocf.get_mleid_addr(cli)
|
cli_mleid_addr = ocf.get_mleid_addr(cli)
|
||||||
br_mleid_addr = ocf.get_mleid_addr(br)
|
br_mleid_addr = ocf.get_mleid_addr(br)
|
||||||
@@ -158,15 +160,20 @@ def test_thread_connect(dut: Tuple[IdfDut, IdfDut, IdfDut]) -> None:
|
|||||||
def formBasicWiFiThreadNetwork(br: IdfDut, cli: IdfDut) -> None:
|
def formBasicWiFiThreadNetwork(br: IdfDut, cli: IdfDut) -> None:
|
||||||
ocf.init_thread(br)
|
ocf.init_thread(br)
|
||||||
ocf.init_thread(cli)
|
ocf.init_thread(cli)
|
||||||
otbr_wifi_para = copy.copy(default_br_wifi_para)
|
|
||||||
ocf.joinWiFiNetwork(br, otbr_wifi_para)
|
|
||||||
otbr_thread_para = copy.copy(default_br_ot_para)
|
otbr_thread_para = copy.copy(default_br_ot_para)
|
||||||
ocf.joinThreadNetwork(br, otbr_thread_para)
|
otbr_wifi_para = copy.copy(default_br_wifi_para)
|
||||||
|
otbr_thread_para.extpanid = secrets.token_hex(8)
|
||||||
|
ocf.SetThreadNetworkPara(br, otbr_thread_para)
|
||||||
|
ocf.joinWiFiNetwork(br, otbr_wifi_para)
|
||||||
|
ocf.StartThreadNetwork(br, otbr_thread_para)
|
||||||
otcli_thread_para = copy.copy(default_cli_ot_para)
|
otcli_thread_para = copy.copy(default_cli_ot_para)
|
||||||
otcli_thread_para.dataset = ocf.getDataset(br)
|
otcli_thread_para.dataset = ocf.getDataset(br)
|
||||||
otcli_thread_para.exaddr = '7766554433221101'
|
otcli_thread_para.exaddr = '7766554433221101'
|
||||||
ocf.joinThreadNetwork(cli, otcli_thread_para)
|
ocf.SetThreadNetworkPara(cli, otcli_thread_para)
|
||||||
|
ocf.StartThreadNetwork(cli, otcli_thread_para)
|
||||||
ocf.wait(cli, 10)
|
ocf.wait(cli, 10)
|
||||||
|
# Polling wait for host RA readiness: both OMR route and onlink GUA must exist.
|
||||||
|
ocf.wait_for_host_ra_route(br)
|
||||||
|
|
||||||
|
|
||||||
# Case 2: Bidirectional IPv6 connectivity
|
# Case 2: Bidirectional IPv6 connectivity
|
||||||
@@ -196,16 +203,12 @@ def test_Bidirectional_IPv6_connectivity(Init_interface: bool, dut: Tuple[IdfDut
|
|||||||
|
|
||||||
formBasicWiFiThreadNetwork(br, cli)
|
formBasicWiFiThreadNetwork(br, cli)
|
||||||
try:
|
try:
|
||||||
ocf.wait_for_host_ra_route(br)
|
onlinkprefix = ocf.get_onlinkprefix(br)
|
||||||
onlinkprefix = ocf.wait_for_host_onlink_global_address(br)
|
|
||||||
logging.info(f'br onlinkprefix: {onlinkprefix}')
|
|
||||||
cli_global_unicast_addr = ocf.get_global_unicast_addr(cli, br)
|
cli_global_unicast_addr = ocf.get_global_unicast_addr(cli, br)
|
||||||
logging.info(f'cli_global_unicast_addr {cli_global_unicast_addr}')
|
logging.info(f'cli_global_unicast_addr {cli_global_unicast_addr}')
|
||||||
interface_name = ocf.get_host_interface_name()
|
interface_name = ocf.get_host_interface_name()
|
||||||
ocf.log_ipv6_addr_route_by_interface(interface_name, title='Before ping test')
|
|
||||||
command = 'ping ' + str(cli_global_unicast_addr) + ' -c 10'
|
command = 'ping ' + str(cli_global_unicast_addr) + ' -c 10'
|
||||||
out_str = subprocess.getoutput(command)
|
out_str = subprocess.getoutput(command)
|
||||||
ocf.log_ipv6_addr_route_by_interface(interface_name, title='After ping test')
|
|
||||||
logging.info(f'ping result:\n{out_str}')
|
logging.info(f'ping result:\n{out_str}')
|
||||||
role = re.findall(r' (\d+)%', str(out_str))[0]
|
role = re.findall(r' (\d+)%', str(out_str))[0]
|
||||||
assert role != '100'
|
assert role != '100'
|
||||||
@@ -215,7 +218,7 @@ def test_Bidirectional_IPv6_connectivity(Init_interface: bool, dut: Tuple[IdfDut
|
|||||||
pattern = rf'\W+({onlinkprefix}(?:\w+:){{3}}\w+)\W+'
|
pattern = rf'\W+({onlinkprefix}(?:\w+:){{3}}\w+)\W+'
|
||||||
host_global_unicast_addr = re.findall(pattern, out_str)
|
host_global_unicast_addr = re.findall(pattern, out_str)
|
||||||
logging.info(f'host_global_unicast_addr: {host_global_unicast_addr}')
|
logging.info(f'host_global_unicast_addr: {host_global_unicast_addr}')
|
||||||
if host_global_unicast_addr is None:
|
if not host_global_unicast_addr:
|
||||||
raise Exception(f'onlinkprefix: {onlinkprefix}, host_global_unicast_addr: {host_global_unicast_addr}')
|
raise Exception(f'onlinkprefix: {onlinkprefix}, host_global_unicast_addr: {host_global_unicast_addr}')
|
||||||
rx_nums = 0
|
rx_nums = 0
|
||||||
for ip_addr in host_global_unicast_addr:
|
for ip_addr in host_global_unicast_addr:
|
||||||
@@ -256,7 +259,6 @@ def test_multicast_forwarding_A(Init_interface: bool, dut: Tuple[IdfDut, IdfDut,
|
|||||||
|
|
||||||
formBasicWiFiThreadNetwork(br, cli)
|
formBasicWiFiThreadNetwork(br, cli)
|
||||||
try:
|
try:
|
||||||
ocf.wait_for_host_ra_route(br)
|
|
||||||
ocf.execute_command(br, 'bbr')
|
ocf.execute_command(br, 'bbr')
|
||||||
br.expect('server16', timeout=5)
|
br.expect('server16', timeout=5)
|
||||||
assert ocf.thread_is_joined_group(cli)
|
assert ocf.thread_is_joined_group(cli)
|
||||||
@@ -309,7 +311,6 @@ def test_multicast_forwarding_B(Init_interface: bool, dut: Tuple[IdfDut, IdfDut,
|
|||||||
|
|
||||||
formBasicWiFiThreadNetwork(br, cli)
|
formBasicWiFiThreadNetwork(br, cli)
|
||||||
try:
|
try:
|
||||||
ocf.wait_for_host_ra_route(br)
|
|
||||||
ocf.execute_command(br, 'bbr')
|
ocf.execute_command(br, 'bbr')
|
||||||
br.expect('server16', timeout=5)
|
br.expect('server16', timeout=5)
|
||||||
ocf.execute_command(cli, 'udp open')
|
ocf.execute_command(cli, 'udp open')
|
||||||
@@ -366,7 +367,6 @@ def test_service_discovery_of_Thread_device(
|
|||||||
|
|
||||||
formBasicWiFiThreadNetwork(br, cli)
|
formBasicWiFiThreadNetwork(br, cli)
|
||||||
try:
|
try:
|
||||||
ocf.wait_for_host_ra_route(br)
|
|
||||||
command = 'avahi-browse -rt _testyyy._udp'
|
command = 'avahi-browse -rt _testyyy._udp'
|
||||||
out_str = subprocess.getoutput(command)
|
out_str = subprocess.getoutput(command)
|
||||||
logging.info(f'avahi-browse:\n{out_str}')
|
logging.info(f'avahi-browse:\n{out_str}')
|
||||||
@@ -428,7 +428,6 @@ def test_service_discovery_of_WiFi_device(
|
|||||||
formBasicWiFiThreadNetwork(br, cli)
|
formBasicWiFiThreadNetwork(br, cli)
|
||||||
sp: Optional[subprocess.Popen] = None
|
sp: Optional[subprocess.Popen] = None
|
||||||
try:
|
try:
|
||||||
ocf.wait_for_host_ra_route(br)
|
|
||||||
br_global_unicast_addr = ocf.get_global_unicast_addr(br, br)
|
br_global_unicast_addr = ocf.get_global_unicast_addr(br, br)
|
||||||
command = 'dns config ' + br_global_unicast_addr
|
command = 'dns config ' + br_global_unicast_addr
|
||||||
ocf.execute_command(cli, command)
|
ocf.execute_command(cli, command)
|
||||||
@@ -439,12 +438,17 @@ def test_service_discovery_of_WiFi_device(
|
|||||||
logging.info(f'domain name is: {domain_name}')
|
logging.info(f'domain name is: {domain_name}')
|
||||||
command = 'dns resolve ' + domain_name + '.default.service.arpa.'
|
command = 'dns resolve ' + domain_name + '.default.service.arpa.'
|
||||||
|
|
||||||
ocf.execute_command(cli, command)
|
for _ in range(3):
|
||||||
cli.expect('TTL', timeout=10)
|
tmp = ocf.get_output_string(cli, command, 5)
|
||||||
cli.expect('Done', timeout=10)
|
if 'TTL' in tmp and 'Done' in str(tmp):
|
||||||
|
break
|
||||||
|
time.sleep(1)
|
||||||
|
else:
|
||||||
|
logging.info('DNS resolution failed after 3 retries, with no response received.')
|
||||||
|
assert False
|
||||||
|
|
||||||
command = 'dns browse _testxxx._udp.default.service.arpa'
|
command = 'dns browse _testxxx._udp.default.service.arpa'
|
||||||
tmp = ocf.get_ouput_string(cli, command, 10)
|
tmp = ocf.get_output_string(cli, command, 10)
|
||||||
assert 'Port:12347' not in str(tmp)
|
assert 'Port:12347' not in str(tmp)
|
||||||
ocf.restart_avahi()
|
ocf.restart_avahi()
|
||||||
command = 'avahi-publish-service testxxx _testxxx._udp 12347 test=1235 dn="for_ci_br_test"'
|
command = 'avahi-publish-service testxxx _testxxx._udp 12347 test=1235 dn="for_ci_br_test"'
|
||||||
@@ -453,12 +457,12 @@ def test_service_discovery_of_WiFi_device(
|
|||||||
ocf.wait(cli, 5)
|
ocf.wait(cli, 5)
|
||||||
|
|
||||||
command = 'dns browse _testxxx._udp.default.service.arpa'
|
command = 'dns browse _testxxx._udp.default.service.arpa'
|
||||||
tmp = ocf.get_ouput_string(cli, command, 10)
|
tmp = ocf.get_output_string(cli, command, 10)
|
||||||
assert 'response for _testxxx' in str(tmp)
|
assert 'response for _testxxx' in str(tmp)
|
||||||
assert 'Port:12347' in str(tmp)
|
assert 'Port:12347' in str(tmp)
|
||||||
|
|
||||||
command = 'dns service testxxx _testxxx._udp.default.service.arpa.'
|
command = 'dns service testxxx _testxxx._udp.default.service.arpa.'
|
||||||
tmp = ocf.get_ouput_string(cli, command, 10)
|
tmp = ocf.get_output_string(cli, command, 10)
|
||||||
assert 'response for testxxx' in str(tmp)
|
assert 'response for testxxx' in str(tmp)
|
||||||
assert 'Port:12347' in str(tmp)
|
assert 'Port:12347' in str(tmp)
|
||||||
finally:
|
finally:
|
||||||
@@ -497,7 +501,6 @@ def test_ICMP_NAT64(Init_interface: bool, dut: Tuple[IdfDut, IdfDut, IdfDut]) ->
|
|||||||
|
|
||||||
formBasicWiFiThreadNetwork(br, cli)
|
formBasicWiFiThreadNetwork(br, cli)
|
||||||
try:
|
try:
|
||||||
ocf.wait_for_host_ra_route(br)
|
|
||||||
host_ipv4_address = ocf.get_host_ipv4_address()
|
host_ipv4_address = ocf.get_host_ipv4_address()
|
||||||
logging.info(f'host_ipv4_address: {host_ipv4_address}')
|
logging.info(f'host_ipv4_address: {host_ipv4_address}')
|
||||||
rx_nums = ocf.ot_ping(cli, str(host_ipv4_address), count=5)[1]
|
rx_nums = ocf.ot_ping(cli, str(host_ipv4_address), count=5)[1]
|
||||||
@@ -535,7 +538,6 @@ def test_UDP_NAT64(Init_interface: bool, dut: Tuple[IdfDut, IdfDut, IdfDut]) ->
|
|||||||
|
|
||||||
formBasicWiFiThreadNetwork(br, cli)
|
formBasicWiFiThreadNetwork(br, cli)
|
||||||
try:
|
try:
|
||||||
ocf.wait_for_host_ra_route(br)
|
|
||||||
ocf.execute_command(br, 'bbr')
|
ocf.execute_command(br, 'bbr')
|
||||||
br.expect('server16', timeout=5)
|
br.expect('server16', timeout=5)
|
||||||
ocf.execute_command(cli, 'udp open')
|
ocf.execute_command(cli, 'udp open')
|
||||||
@@ -591,7 +593,6 @@ def test_TCP_NAT64(Init_interface: bool, dut: Tuple[IdfDut, IdfDut, IdfDut]) ->
|
|||||||
|
|
||||||
formBasicWiFiThreadNetwork(br, cli)
|
formBasicWiFiThreadNetwork(br, cli)
|
||||||
try:
|
try:
|
||||||
ocf.wait_for_host_ra_route(br)
|
|
||||||
ocf.execute_command(br, 'bbr')
|
ocf.execute_command(br, 'bbr')
|
||||||
br.expect('server16', timeout=5)
|
br.expect('server16', timeout=5)
|
||||||
ocf.execute_command(cli, 'tcpsockclient open')
|
ocf.execute_command(cli, 'tcpsockclient open')
|
||||||
@@ -662,7 +663,8 @@ def test_ot_sleepy_device(dut: Tuple[IdfDut, IdfDut]) -> None:
|
|||||||
ocf.init_thread(leader)
|
ocf.init_thread(leader)
|
||||||
time.sleep(3)
|
time.sleep(3)
|
||||||
leader_para = ocf.thread_parameter('leader', '', '12', '7766554433221100', False)
|
leader_para = ocf.thread_parameter('leader', '', '12', '7766554433221100', False)
|
||||||
ocf.joinThreadNetwork(leader, leader_para)
|
ocf.SetThreadNetworkPara(leader, leader_para)
|
||||||
|
ocf.StartThreadNetwork(leader, leader_para)
|
||||||
ocf.wait(leader, 5)
|
ocf.wait(leader, 5)
|
||||||
dataset = ocf.getDataset(leader)
|
dataset = ocf.getDataset(leader)
|
||||||
ocf.execute_command(sleepy_device, 'mode -')
|
ocf.execute_command(sleepy_device, 'mode -')
|
||||||
@@ -760,7 +762,7 @@ def test_NAT64_DNS(Init_interface: bool, dut: Tuple[IdfDut, IdfDut, IdfDut]) ->
|
|||||||
ocf.execute_command(cli, 'dns64server 8.8.8.8')
|
ocf.execute_command(cli, 'dns64server 8.8.8.8')
|
||||||
cli.expect('Done', timeout=5)
|
cli.expect('Done', timeout=5)
|
||||||
command = 'curl http://www.espressif.com'
|
command = 'curl http://www.espressif.com'
|
||||||
message = ocf.get_ouput_string(cli, command, 10)
|
message = ocf.get_output_string(cli, command, 10)
|
||||||
assert 'html' in str(message)
|
assert 'html' in str(message)
|
||||||
assert '301 Moved Permanently' in str(message)
|
assert '301 Moved Permanently' in str(message)
|
||||||
finally:
|
finally:
|
||||||
@@ -801,7 +803,8 @@ def test_br_meshcop(Init_interface: bool, Init_avahi: bool, dut: Tuple[IdfDut, I
|
|||||||
br_thread_para = copy.copy(default_br_ot_para)
|
br_thread_para = copy.copy(default_br_ot_para)
|
||||||
networkname = 'OTCI-' + str(secrets.token_hex(1))
|
networkname = 'OTCI-' + str(secrets.token_hex(1))
|
||||||
br_thread_para.setnetworkname(networkname)
|
br_thread_para.setnetworkname(networkname)
|
||||||
ocf.joinThreadNetwork(br, br_thread_para)
|
ocf.SetThreadNetworkPara(br, br_thread_para)
|
||||||
|
ocf.StartThreadNetwork(br, br_thread_para)
|
||||||
ocf.wait(br, 10)
|
ocf.wait(br, 10)
|
||||||
ocf.wait_for_host_ra_route(br)
|
ocf.wait_for_host_ra_route(br)
|
||||||
command = 'timeout 3 avahi-browse -r _meshcop._udp'
|
command = 'timeout 3 avahi-browse -r _meshcop._udp'
|
||||||
@@ -860,7 +863,7 @@ def test_https_NAT64_DNS(Init_interface: bool, dut: Tuple[IdfDut, IdfDut, IdfDut
|
|||||||
ocf.execute_command(cli, 'dns64server 8.8.8.8')
|
ocf.execute_command(cli, 'dns64server 8.8.8.8')
|
||||||
cli.expect('Done', timeout=5)
|
cli.expect('Done', timeout=5)
|
||||||
command = 'curl https://www.example.com/'
|
command = 'curl https://www.example.com/'
|
||||||
message = ocf.get_ouput_string(cli, command, 20)
|
message = ocf.get_output_string(cli, command, 20)
|
||||||
assert 'html' in str(message)
|
assert 'html' in str(message)
|
||||||
assert 'This domain is for use in' in str(message)
|
assert 'This domain is for use in' in str(message)
|
||||||
finally:
|
finally:
|
||||||
@@ -900,7 +903,8 @@ def test_trel_connect(dut: Tuple[IdfDut, IdfDut]) -> None:
|
|||||||
ocf.init_thread(trel)
|
ocf.init_thread(trel)
|
||||||
trel_leader_para = copy.copy(default_br_ot_para)
|
trel_leader_para = copy.copy(default_br_ot_para)
|
||||||
trel_leader_para.bbr = False
|
trel_leader_para.bbr = False
|
||||||
ocf.joinThreadNetwork(trel_s3, trel_leader_para)
|
ocf.SetThreadNetworkPara(trel_s3, trel_leader_para)
|
||||||
|
ocf.StartThreadNetwork(trel_s3, trel_leader_para)
|
||||||
trel_para = copy.copy(default_cli_ot_para)
|
trel_para = copy.copy(default_cli_ot_para)
|
||||||
trel_para.dataset = ocf.getDataset(trel_s3)
|
trel_para.dataset = ocf.getDataset(trel_s3)
|
||||||
try:
|
try:
|
||||||
@@ -908,7 +912,8 @@ def test_trel_connect(dut: Tuple[IdfDut, IdfDut]) -> None:
|
|||||||
for trel in trel_list:
|
for trel in trel_list:
|
||||||
trel_para.exaddr = router_extaddr_list[order]
|
trel_para.exaddr = router_extaddr_list[order]
|
||||||
order = order + 1
|
order = order + 1
|
||||||
ocf.joinThreadNetwork(trel, trel_para)
|
ocf.SetThreadNetworkPara(trel, trel_para)
|
||||||
|
ocf.StartThreadNetwork(trel, trel_para)
|
||||||
for trel in trel_list:
|
for trel in trel_list:
|
||||||
trel_mleid_addr = ocf.get_mleid_addr(trel)
|
trel_mleid_addr = ocf.get_mleid_addr(trel)
|
||||||
trel_s3_mleid_addr = ocf.get_mleid_addr(trel_s3)
|
trel_s3_mleid_addr = ocf.get_mleid_addr(trel_s3)
|
||||||
@@ -989,7 +994,8 @@ def test_ot_ssed_device(dut: Tuple[IdfDut, IdfDut]) -> None:
|
|||||||
ocf.init_thread(leader)
|
ocf.init_thread(leader)
|
||||||
time.sleep(3)
|
time.sleep(3)
|
||||||
leader_para = ocf.thread_parameter('leader', '', '12', '7766554433221100', False)
|
leader_para = ocf.thread_parameter('leader', '', '12', '7766554433221100', False)
|
||||||
ocf.joinThreadNetwork(leader, leader_para)
|
ocf.SetThreadNetworkPara(leader, leader_para)
|
||||||
|
ocf.StartThreadNetwork(leader, leader_para)
|
||||||
ocf.wait(leader, 5)
|
ocf.wait(leader, 5)
|
||||||
ocf.execute_command(leader, 'networkkey')
|
ocf.execute_command(leader, 'networkkey')
|
||||||
dataset = ocf.getDataset(leader)
|
dataset = ocf.getDataset(leader)
|
||||||
|
|||||||
Reference in New Issue
Block a user