[PATCH v4 2/3] test/py: IPv6 network discovery test

Vyacheslav V. Mitrofanov v.v.mitrofanov at yadro.com
Mon Apr 24 09:59:15 CEST 2023


On Fri, 2023-04-21 at 17:08 -0700, emohandesi at linux.microsoft.com
wrote:
> «Внимание! Данное письмо от внешнего адресата!»
> 
> From: Ehsan Mohandesi <emohandesi at linux.microsoft.com>
> 
> Test the IPv6 network discovery feature if indicated by boardenv
> file.
> 
> Signed-off-by: Ehsan Mohandesi <emohandesi at linux.microsoft.com>
> ---
>  configs/sandbox64_defconfig        |  2 ++
>  configs/sandbox_defconfig          |  2 ++
>  configs/sandbox_flattree_defconfig |  2 ++
>  test/py/tests/test_net.py          | 31
> ++++++++++++++++++++++++++++++-
>  4 files changed, 36 insertions(+), 1 deletion(-)
> 
> diff --git a/configs/sandbox64_defconfig
> b/configs/sandbox64_defconfig
> index af2c56a..be36ede 100644
> --- a/configs/sandbox64_defconfig
> +++ b/configs/sandbox64_defconfig
> @@ -260,3 +260,5 @@ CONFIG_FWU_MULTI_BANK_UPDATE=y
>  CONFIG_UNIT_TEST=y
>  CONFIG_UT_TIME=y
>  CONFIG_UT_DM=y
> +CONFIG_IPV6=y
> +CONFIG_IPV6_ROUTER_DISCOVERY=y
> diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig
> index ca95b2c..0673c69 100644
> --- a/configs/sandbox_defconfig
> +++ b/configs/sandbox_defconfig
> @@ -341,3 +341,5 @@ CONFIG_UNIT_TEST=y
>  CONFIG_UT_TIME=y
>  CONFIG_UT_DM=y
>  CONFIG_CMD_2048=y
> +CONFIG_IPV6=y
> +CONFIG_IPV6_ROUTER_DISCOVERY=y
> diff --git a/configs/sandbox_flattree_defconfig
> b/configs/sandbox_flattree_defconfig
> index e9fcc5b..d6c8dd2 100644
> --- a/configs/sandbox_flattree_defconfig
> +++ b/configs/sandbox_flattree_defconfig
> @@ -229,3 +229,5 @@ CONFIG_EFI_CAPSULE_FIRMWARE_FIT=y
>  CONFIG_UNIT_TEST=y
>  CONFIG_UT_TIME=y
>  CONFIG_UT_DM=y
> +CONFIG_IPV6=y
> +CONFIG_IPV6_ROUTER_DISCOVERY=y
> diff --git a/test/py/tests/test_net.py b/test/py/tests/test_net.py
> index 9ca6743..f85071d 100644
> --- a/test/py/tests/test_net.py
> +++ b/test/py/tests/test_net.py
> @@ -9,7 +9,7 @@ import u_boot_utils
> 
>  """
>  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.
> 
>  For example:
> @@ -55,6 +55,11 @@ env__net_nfs_readable_file = {
>      'size': 5058624,
>      '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
> @@ -126,6 +131,30 @@ def test_net_ping(u_boot_console):
>      output = u_boot_console.run_command('ping $serverip')
>      assert 'is alive' in output
> 
> + at 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')
>  def test_net_tftpboot(u_boot_console):
>      """Test the tftpboot command.
> --
> 1.8.3.1
> 
> 

Reviewed-by: Viacheslav Mitrofanov <v.v.mitrofanov at yadro.com>


More information about the U-Boot mailing list