[Buildroot] [PATCH v2 2/5] support/testing/tests/toolchain/test_external: support non-ELF toolchains

Yann E. MORIN yann.morin.1998 at free.fr
Thu Aug 13 21:30:41 UTC 2020


Thomas, All,

On 2020-08-09 21:38 +0200, Thomas Petazzoni spake thusly:
> The TestExternalToolchain() base class implement a test checking if
> the ELF interpreter that is advertised by Busybox really exists in the
> rootfs. Of course, this only makes sense with ELF toolchains. Until
> now, only ELF toolchains were tested, but we are going to use
> TestExternalToolchain() with non-ELF toolchains as well, so let's make
> this conditional.
> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
> ---
>  support/testing/tests/toolchain/test_external.py | 14 +++++++++-----
>  1 file changed, 9 insertions(+), 5 deletions(-)
> 
> diff --git a/support/testing/tests/toolchain/test_external.py b/support/testing/tests/toolchain/test_external.py
> index 881d2b00db..1818ae0498 100644
> --- a/support/testing/tests/toolchain/test_external.py
> +++ b/support/testing/tests/toolchain/test_external.py
> @@ -26,11 +26,15 @@ class TestExternalToolchain(infra.basetest.BRTest):
>              path = os.path.join(self.builddir, "target", d)
>              self.assertFalse(has_broken_links(path))
>  
> -        interp = infra.get_elf_prog_interpreter(self.builddir,
> -                                                self.toolchain_prefix,
> -                                                "bin/busybox")
> -        interp_path = os.path.join(self.builddir, "target", interp[1:])
> -        self.assertTrue(os.path.exists(interp_path))
> +        with open(os.path.join(self.builddir, ".config")) as configf:

I'd prefer we be explicit about the mode we open() with.

> +            configlines = configf.readlines()
> +
> +        if "BR2_BINFMT_ELF=y\n" in configlines:

I find it ugly that you have to test with the trailing '\n':

    with open(os.path.join(self.builddir, ".config"), 'r') as configf:
        configlines = [l.strip() for l in configf.readlines()]

    if "BR2_BINFMT_ELF=y" in configlines:
        blabla...

Regards,
Yann E. MORIN.

> +            interp = infra.get_elf_prog_interpreter(self.builddir,
> +                                                    self.toolchain_prefix,
> +                                                    "bin/busybox")
> +            interp_path = os.path.join(self.builddir, "target", interp[1:])
> +            self.assertTrue(os.path.exists(interp_path))
>  
>  
>  class TestExternalToolchainSourceryArmv4(TestExternalToolchain):
> -- 
> 2.26.2
> 

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'


More information about the buildroot mailing list