On Thu, Aug 27, 2020 at 4:00 AM Alexander Kanavin
<[email protected]> wrote:
>
> It is difficult and error-prone to ensure binutils gets
> installed into target images where this test may run;
> on the other hand readelf is always present on the
> host, as it is a part of HOSTTOOLS.
>

this would mean that we are relying on build host provided binutils to
be compiled with all bfd support
since now we also have aarch64 build hosts it spreads he risk a bit
more. maybe we can
ignore this test if target does not have binutils installed or depend
on binutils-native for providing readelf


> Signed-off-by: Alexander Kanavin <[email protected]>
> ---
>  meta/lib/oeqa/runtime/cases/x32lib.py | 17 +++++++++++------
>  1 file changed, 11 insertions(+), 6 deletions(-)
>
> diff --git a/meta/lib/oeqa/runtime/cases/x32lib.py 
> b/meta/lib/oeqa/runtime/cases/x32lib.py
> index ddf220140e..f419c8f181 100644
> --- a/meta/lib/oeqa/runtime/cases/x32lib.py
> +++ b/meta/lib/oeqa/runtime/cases/x32lib.py
> @@ -6,16 +6,21 @@ from oeqa.runtime.case import OERuntimeTestCase
>  from oeqa.core.decorator.depends import OETestDepends
>  from oeqa.core.decorator.data import skipIfNotInDataVar
>
> +import subprocess
> +
>  class X32libTest(OERuntimeTestCase):
>
>      @skipIfNotInDataVar('DEFAULTTUNE', 'x86-64-x32',
>                          'DEFAULTTUNE is not set to x86-64-x32')
>      @OETestDepends(['ssh.SSHTest.test_ssh'])
>      def test_x32_file(self):
> -        cmd = 'readelf -h /bin/ls | grep Class | grep ELF32'
> -        status1 = self.target.run(cmd)[0]
> -        cmd = 'readelf -h /bin/ls | grep Machine | grep X86-64'
> -        status2 = self.target.run(cmd)[0]
> -        msg = ("/bin/ls isn't an X86-64 ELF32 binary. readelf says: %s" %
> -                self.target.run("readelf -h /bin/ls")[1])
> +        dest = self.td.get('T', '') + "/ls.x32test"
> +        self.target.copyFrom("/bin/ls", dest)
> +        cmd = 'readelf -h {} | grep Class | grep ELF32'.format(dest)
> +        status1 = subprocess.call(cmd, shell=True)
> +        cmd = 'readelf -h {} | grep Machine | grep X86-64'.format(dest)
> +        status2 = subprocess.call(cmd, shell=True)
> +        msg = ("/bin/ls isn't an X86-64 ELF32 binary. readelf 
> says:\n{}".format(
> +                subprocess.check_output("readelf -h {}".format(dest), 
> shell=True).decode()))
> +        os.remove(dest)
>          self.assertTrue(status1 == 0 and status2 == 0, msg=msg)
> --
> 2.28.0
>
> 
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#141922): 
https://lists.openembedded.org/g/openembedded-core/message/141922
Mute This Topic: https://lists.openembedded.org/mt/76448654/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub  
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to