mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-26 07:17:10 +00:00
test/py: IPv6 network discovery test
Test the IPv6 network discovery feature if indicated by boardenv file. Signed-off-by: Ehsan Mohandesi <emohandesi@linux.microsoft.com> Reviewed-by: Viacheslav Mitrofanov <v.v.mitrofanov@yadro.com>
This commit is contained in:
parent
6de98b60ba
commit
eafbe16b01
4 changed files with 33 additions and 1 deletions
|
@ -69,6 +69,7 @@ CONFIG_CMD_CDP=y
|
||||||
CONFIG_CMD_SNTP=y
|
CONFIG_CMD_SNTP=y
|
||||||
CONFIG_CMD_DNS=y
|
CONFIG_CMD_DNS=y
|
||||||
CONFIG_CMD_LINK_LOCAL=y
|
CONFIG_CMD_LINK_LOCAL=y
|
||||||
|
CONFIG_IPV6_ROUTER_DISCOVERY=y
|
||||||
CONFIG_CMD_ETHSW=y
|
CONFIG_CMD_ETHSW=y
|
||||||
CONFIG_CMD_BMP=y
|
CONFIG_CMD_BMP=y
|
||||||
CONFIG_CMD_EFIDEBUG=y
|
CONFIG_CMD_EFIDEBUG=y
|
||||||
|
|
|
@ -101,6 +101,7 @@ CONFIG_CMD_CDP=y
|
||||||
CONFIG_CMD_SNTP=y
|
CONFIG_CMD_SNTP=y
|
||||||
CONFIG_CMD_DNS=y
|
CONFIG_CMD_DNS=y
|
||||||
CONFIG_CMD_LINK_LOCAL=y
|
CONFIG_CMD_LINK_LOCAL=y
|
||||||
|
CONFIG_IPV6_ROUTER_DISCOVERY=y
|
||||||
CONFIG_CMD_ETHSW=y
|
CONFIG_CMD_ETHSW=y
|
||||||
CONFIG_CMD_2048=y
|
CONFIG_CMD_2048=y
|
||||||
CONFIG_CMD_BMP=y
|
CONFIG_CMD_BMP=y
|
||||||
|
|
|
@ -59,6 +59,7 @@ CONFIG_CMD_CDP=y
|
||||||
CONFIG_CMD_SNTP=y
|
CONFIG_CMD_SNTP=y
|
||||||
CONFIG_CMD_DNS=y
|
CONFIG_CMD_DNS=y
|
||||||
CONFIG_CMD_LINK_LOCAL=y
|
CONFIG_CMD_LINK_LOCAL=y
|
||||||
|
CONFIG_IPV6_ROUTER_DISCOVERY=y
|
||||||
CONFIG_CMD_EFIDEBUG=y
|
CONFIG_CMD_EFIDEBUG=y
|
||||||
CONFIG_CMD_RTC=y
|
CONFIG_CMD_RTC=y
|
||||||
CONFIG_CMD_TIME=y
|
CONFIG_CMD_TIME=y
|
||||||
|
|
|
@ -9,7 +9,7 @@ import u_boot_utils
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Note: This test relies on boardenv_* containing configuration values to define
|
Note: This test relies on boardenv_* containing configuration values to define
|
||||||
which the network environment available for testing. Without this, this test
|
which network environment is available for testing. Without this, this test
|
||||||
will be automatically skipped.
|
will be automatically skipped.
|
||||||
|
|
||||||
For example:
|
For example:
|
||||||
|
@ -60,6 +60,11 @@ env__net_nfs_readable_file = {
|
||||||
'size': 5058624,
|
'size': 5058624,
|
||||||
'crc32': 'c2244b26',
|
'crc32': 'c2244b26',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# True if a router advertisement service is connected to the network, and should
|
||||||
|
# be tested. If router advertisement testing is not possible or desired, this
|
||||||
|
variable may be omitted or set to False.
|
||||||
|
env__router_on_net = True
|
||||||
"""
|
"""
|
||||||
|
|
||||||
net_set_up = False
|
net_set_up = False
|
||||||
|
@ -151,6 +156,30 @@ def test_net_ping(u_boot_console):
|
||||||
output = u_boot_console.run_command('ping $serverip')
|
output = u_boot_console.run_command('ping $serverip')
|
||||||
assert 'is alive' in output
|
assert 'is alive' in output
|
||||||
|
|
||||||
|
@pytest.mark.buildconfigspec('IPV6_ROUTER_DISCOVERY')
|
||||||
|
def test_net_network_discovery(u_boot_console):
|
||||||
|
"""Test the network discovery feature of IPv6.
|
||||||
|
|
||||||
|
An IPv6 network command (ping6 in this case) is run to make U-Boot send a
|
||||||
|
router solicitation packet, receive a router advertisement message, and
|
||||||
|
parse it.
|
||||||
|
A router advertisement service needs to be running for this test to succeed.
|
||||||
|
U-Boot receives the RA, processes it, and if successful, assigns the gateway
|
||||||
|
IP and prefix length.
|
||||||
|
The configuration is provided by the boardenv_* file; see the comment at
|
||||||
|
the beginning of this file.
|
||||||
|
"""
|
||||||
|
|
||||||
|
router_on_net = u_boot_console.config.env.get('env__router_on_net', False)
|
||||||
|
if not router_on_net:
|
||||||
|
pytest.skip('No router on network')
|
||||||
|
|
||||||
|
fake_host_ip = 'fe80::215:5dff:fef6:2ec6'
|
||||||
|
output = u_boot_console.run_command('ping6 ' + fake_host_ip)
|
||||||
|
assert 'ROUTER SOLICITATION 1' in output
|
||||||
|
assert 'Set gatewayip6:' in output
|
||||||
|
assert '0000:0000:0000:0000:0000:0000:0000:0000' not in output
|
||||||
|
|
||||||
@pytest.mark.buildconfigspec('cmd_net')
|
@pytest.mark.buildconfigspec('cmd_net')
|
||||||
def test_net_tftpboot(u_boot_console):
|
def test_net_tftpboot(u_boot_console):
|
||||||
"""Test the tftpboot command.
|
"""Test the tftpboot command.
|
||||||
|
|
Loading…
Add table
Reference in a new issue