[OE-core] [PATCH 1/1] oeqa/runtime/cases/systemd.py: avoid timeout problem

Burton, Ross ross.burton at intel.com
Mon Jun 25 13:40:59 UTC 2018


The busctl invocation will only rarely be called so is very prone to
bitrot, maybe it should just always use busctl?

Personally I think that there should be a way for VM time to be
independent of host time to avoid this sort of problem...

Ross

On 25 June 2018 at 10:33, Chen Qi <Qi.Chen at windriver.com> wrote:
> I've encountered the following error when doing testimage.
>
>   RESULTS - systemd.SystemdBasicTests.test_systemd_list - Testcase 551: FAILED
>
> After investigation, I found that it's not functionality issue. It's
> just that the qemu was not running fast enough. And it resulted 'time out'
> problem when using `systemctl list-unit-files'.
>
> The correctness could be verified by using 'busctl' directly.
> e.g.
> busctl --timeout=240 call org.freedesktop.systemd1 \
> /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager \
> ListUnitFilesByPatterns asas 0 0
>
> Checking the source codes, I can see that the timeout is 25s. I don't
> think we should patch systemd's source codes just for such a simple
> runtime test case.
>
> So instead, I change the test case to use 'busctl' directly if
> 'systemctl list-unit-files' gets a timeout error.
>
> Signed-off-by: Chen Qi <Qi.Chen at windriver.com>
> ---
>  meta/lib/oeqa/runtime/cases/systemd.py | 14 +++++++++++++-
>  1 file changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/meta/lib/oeqa/runtime/cases/systemd.py b/meta/lib/oeqa/runtime/cases/systemd.py
> index db69384..b4f1025 100644
> --- a/meta/lib/oeqa/runtime/cases/systemd.py
> +++ b/meta/lib/oeqa/runtime/cases/systemd.py
> @@ -81,7 +81,19 @@ class SystemdBasicTests(SystemdTest):
>      @OETestID(551)
>      @OETestDepends(['systemd.SystemdBasicTests.test_systemd_basic'])
>      def test_systemd_list(self):
> -        self.systemctl('list-unit-files')
> +        command = 'systemctl list-unit-files'
> +        status, output = self.target.run(command)
> +        message = '\n'.join([command, output])
> +        match = re.search('Connection timed out', output)
> +        if match:
> +            # it's possible that qemu is running slow
> +            # use busctl to check the results with timeout set to 240s
> +            command = 'busctl --timeout=240 call org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager ListUnitFilesByPatterns asas 0 0'
> +            status, output = self.target.run(command)
> +            message = '\n'.join([command, output])
> +            self.assertEqual(status, 0, message)
> +        else:
> +            self.assertEqual(status, 0, message)
>
>      @OETestID(550)
>      @OETestDepends(['systemd.SystemdBasicTests.test_systemd_basic'])
> --
> 1.9.1
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core



More information about the Openembedded-core mailing list