[OE-core] [PATCH] runtime/systemd: Fix for boot time string parse error

Khem Raj raj.khem at gmail.com
Mon Feb 1 18:48:01 UTC 2016


On Mon, Feb 1, 2016 at 7:53 AM, Benjamin Esquivel
<benjamin.esquivel at linux.intel.com> wrote:
> boot time string can change its format of the output of the amount of time
> it took to boot. It is required to handle graceful fail of the parsing
> errors that it provokes
>
> [YOCTO #8889]
>
> Signed-off-by: Benjamin Esquivel <benjamin.esquivel at linux.intel.com>
> ---
>  meta/lib/oeqa/runtime/systemd.py | 22 ++++++++++++----------
>  1 file changed, 12 insertions(+), 10 deletions(-)
>
> diff --git a/meta/lib/oeqa/runtime/systemd.py b/meta/lib/oeqa/runtime/systemd.py
> index 03c56ef..2b2f10d 100644
> --- a/meta/lib/oeqa/runtime/systemd.py
> +++ b/meta/lib/oeqa/runtime/systemd.py
> @@ -145,8 +145,7 @@ class SystemdJournalTests(SystemdTest):
>          except AssertionError:
>              self.fail("Error occurred while calling journalctl")
>          if not len(output):
> -            self.fail("Error: unable to obtain the startup time from\
> -                    systemd journal")
> +            self.fail("Error, unable to get startup time from systemd journal")
>
>          # check for the regular expression items that match the startup time
>          for line in output.split('\n'):
> @@ -156,20 +155,23 @@ class SystemdJournalTests(SystemdTest):
>          if check_match:
>              print "%s" % check_match
>          else:
> -            self.fail("Error while obtaining the boot time from journalctl")
> +            self.skipTest("Error at obtaining the boot time from journalctl")
>          boot_time_sec = 0
>
>          # get the numeric values from the string and convert them to seconds
>          # same data will be placed in list and string for manipulation
>          l_boot_time = check_match.split(" ")[-2:]
>          s_boot_time = " ".join(l_boot_time)
> -        # Obtain the minutes it took to boot
> -        if l_boot_time[0].endswith('min') and l_boot_time[0][0].isdigit():
> -            boot_time_min = s_boot_time.split("min")[0]
> -            # convert to seconds and accumulate it
> -            boot_time_sec += int(boot_time_min) * 60
> -        # Obtain the seconds it took to boot and accumulate
> -        boot_time_sec += float(l_boot_time[1].split("s")[0])
> +        try:
> +            # Obtain the minutes it took to boot
> +            if l_boot_time[0].endswith('min') and l_boot_time[0][0].isdigit():
> +                boot_time_min = s_boot_time.split("min")[0]
> +                # convert to seconds and accumulate it
> +                boot_time_sec += int(boot_time_min) * 60
> +            # Obtain the seconds it took to boot and accumulate
> +            boot_time_sec += float(l_boot_time[1].split("s")[0])

is float right to use here I wonder,

> +        except ValueError:
> +            self.skipTest("Error when parsing time from boot string")
>          #Assert the target boot time against systemd's unit start timeout
>          if boot_time_sec > systemd_TimeoutStartSec:
>              print "Target boot time %s exceeds systemd's TimeoutStartSec %s"\
> --
> 2.5.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