[OE-core] [PATCH] oeqa/selftest: Automate manual pybootchart tests

akuster808 akuster808 at gmail.com
Thu May 9 23:16:42 UTC 2019



On 5/9/19 9:58 AM, Richard Purdie wrote:
> Automate the current manual pybootchart tests. This includes a check
> for the cairo dependency, skipping the test if appropriate.
>
> Based on original patch from Armin Kuster <akuster808 at gmail.com>
>
> Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>

Thanks.

- armin
> ---
>  meta/lib/oeqa/manual/oe-core.json         | 26 -----------------
>  meta/lib/oeqa/selftest/cases/oescripts.py | 34 +++++++++++++++++++++++
>  2 files changed, 34 insertions(+), 26 deletions(-)
>
> diff --git a/meta/lib/oeqa/manual/oe-core.json b/meta/lib/oeqa/manual/oe-core.json
> index d893d849fb3..3ee0aa95f93 100644
> --- a/meta/lib/oeqa/manual/oe-core.json
> +++ b/meta/lib/oeqa/manual/oe-core.json
> @@ -1,30 +1,4 @@
>  [
> -  {
> -    "test": {
> -      "@alias": "oe-core.scripts.Use_scripts/pybootchartgui/pybootchartgui.py_to_generate_build_profiles",
> -      "author": [
> -        {
> -          "email": "alexandru.c.georgescu at intel.com",
> -          "name": "alexandru.c.georgescu at intel.com"
> -        }
> -      ],
> -      "execution": {
> -        "1": {
> -          "action": "Run a build for a recipe (e.g. core-image-minimal)",
> -          "expected_results": ""
> -        },
> -        "2": {
> -          "action": "Run the profiling script, ../scripts/pybootchartgui/pybootchartgui.py  tmp/buildstats/    \n\n",
> -          "expected_results": ""
> -        },
> -        "3": {
> -          "action": "Verify the results ",
> -          "expected_results": "The scripts generates svg files with the profiling results . "
> -        }
> -      },
> -      "summary": "Use_scripts/pybootchartgui/pybootchartgui.py_to_generate_build_profiles"
> -    }
> -  },
>    {
>      "test": {
>        "@alias": "oe-core.scripts.Crosstap_script_check",
> diff --git a/meta/lib/oeqa/selftest/cases/oescripts.py b/meta/lib/oeqa/selftest/cases/oescripts.py
> index 56b35b59eb8..217afe3775b 100644
> --- a/meta/lib/oeqa/selftest/cases/oescripts.py
> +++ b/meta/lib/oeqa/selftest/cases/oescripts.py
> @@ -2,6 +2,7 @@
>  # SPDX-License-Identifier: MIT
>  #
>  
> +import os
>  from oeqa.selftest.case import OESelftestTestCase
>  from oeqa.selftest.cases.buildhistory import BuildhistoryBase
>  from oeqa.utils.commands import Command, runCmd, bitbake, get_bb_var, get_test_layer
> @@ -28,3 +29,36 @@ class BuildhistoryDiffTests(BuildhistoryBase):
>                  self.fail('Unexpected line:\n%s\nExpected line endings:\n  %s' % (line, '\n  '.join(expected_endlines)))
>          if expected_endlines:
>              self.fail('Missing expected line endings:\n  %s' % '\n  '.join(expected_endlines))
> +
> +class OEScriptTests(OESelftestTestCase):
> +
> +    @classmethod
> +    def setUpClass(cls):
> +        super(OEScriptTests, cls).setUpClass()
> +        try:
> +            import cairo
> +        except ImportError:
> +            cls.skipTest('Python module cairo is not present')
> +        bitbake("core-image-minimal -c rootfs -f")
> +        cls.tmpdir = get_bb_var('TMPDIR')
> +        cls.buildstats = cls.tmpdir + "/buildstats/" + sorted(os.listdir(cls.tmpdir + "/buildstats"))[-1]
> +
> +    scripts_dir = os.path.join(get_bb_var('COREBASE'), 'scripts')
> +
> +class OEPybootchartguyTests(OEScriptTests):
> +
> +    def test_pybootchartguy_help(self):
> +        runCmd('%s/pybootchartgui/pybootchartgui.py  --help' % self.scripts_dir)
> +
> +    def test_pybootchartguy_to_generate_build_png_output(self):
> +        runCmd('%s/pybootchartgui/pybootchartgui.py  %s -o %s/charts -f png' % (self.scripts_dir, self.buildstats, self.tmpdir))
> +        self.assertTrue(os.path.exists(self.tmpdir + "/charts.png"))
> +
> +    def test_pybootchartguy_to_generate_build_svg_output(self):
> +        runCmd('%s/pybootchartgui/pybootchartgui.py  %s -o %s/charts -f svg' % (self.scripts_dir, self.buildstats, self.tmpdir))
> +        self.assertTrue(os.path.exists(self.tmpdir + "/charts.svg"))
> +
> +    def test_pybootchartguy_to_generate_build_pdf_output(self):
> +        runCmd('%s/pybootchartgui/pybootchartgui.py  %s -o %s/charts -f pdf' % (self.scripts_dir, self.buildstats, self.tmpdir))
> +        self.assertTrue(os.path.exists(self.tmpdir + "/charts.pdf"))
> +



More information about the Openembedded-core mailing list