support/testing/tests/toolchain/test_external: support non-ELF toolchains

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@bootlin.com>
[yann.morin.1998@free.fr: strip() lines during readlines()]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
This commit is contained in:
Thomas Petazzoni 2020-08-14 21:52:32 +02:00 committed by Yann E. MORIN
parent 4741968d8b
commit 679a1ba24b

View File

@ -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"), 'r') as configf:
configlines = [l.strip() for l in configf.readlines()]
if "BR2_BINFMT_ELF=y" in configlines:
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):