From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: alexis.lothore@bootlin.com, Openembedded-core@lists.openembedded.org
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
Alexandre Belloni <alexandre.belloni@bootlin.com>
Subject: Re: [OE-Core][PATCH v3 1/5] lib/oeqa: share get_json_result_dir helper
Date: Fri, 23 Feb 2024 17:27:44 +0000 [thread overview]
Message-ID: <d17283d1e037be26e5fd905853ff47c48d630e85.camel@linuxfoundation.org> (raw)
In-Reply-To: <20240223151648.1453027-2-alexis.lothore@bootlin.com>
On Fri, 2024-02-23 at 16:16 +0100, Alexis Lothoré via
lists.openembedded.org wrote:
> From: Alexis Lothoré <alexis.lothore@bootlin.com>
>
> Multiple places in oeqa need to get the log output path, and redefine
> a
> small helper to accomplish this
>
> Define this helper in lib/oeqa/utils/__init__.py and import it
> wherever
> needed to allow using it.
>
> Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
> ---
> There is one additional place re-definining (slightly) differently
> this
> helper, which is in selftest/context.py. This one does not check
> OEQA_JSON_RESULT_DIR from the datastore but through test data
> embedded in
> the test context. Based on Richard's feedback in v2, the datastore
> functions may be correctly simulated even in this case, so I may do
> some
> tests and come up with a patch after this series
> ---
> meta/classes-recipe/testimage.bbclass | 12 +++---------
> meta/lib/oeqa/sdk/testsdk.py | 11 ++---------
> meta/lib/oeqa/utils/__init__.py | 7 +++++++
> 3 files changed, 12 insertions(+), 18 deletions(-)
>
> diff --git a/meta/classes-recipe/testimage.bbclass b/meta/classes-
> recipe/testimage.bbclass
> index d076102f9691..959c226072aa 100644
> --- a/meta/classes-recipe/testimage.bbclass
> +++ b/meta/classes-recipe/testimage.bbclass
> @@ -149,13 +149,6 @@ def get_testimage_configuration(d, test_type,
> machine):
> return configuration
> get_testimage_configuration[vardepsexclude] = "DATETIME"
>
> -def get_testimage_json_result_dir(d):
> - json_result_dir = os.path.join(d.getVar("LOG_DIR"), 'oeqa')
> - custom_json_result_dir = d.getVar("OEQA_JSON_RESULT_DIR")
> - if custom_json_result_dir:
> - json_result_dir = custom_json_result_dir
> - return json_result_dir
> -
> def get_testimage_result_id(configuration):
> return '%s_%s_%s_%s' % (configuration['TEST_TYPE'],
> configuration['IMAGE_BASENAME'], configuration['MACHINE'],
> configuration['STARTTIME'])
>
> @@ -224,6 +217,7 @@ def testimage_main(d):
> from oeqa.core.target.qemu import supported_fstypes
> from oeqa.core.utils.test import getSuiteCases
> from oeqa.utils import make_logger_bitbake_compatible
> + from oeqa.utils import get_json_result_dir
>
> def sigterm_exception(signum, stackframe):
> """
> @@ -426,14 +420,14 @@ def testimage_main(d):
> # Show results (if we have them)
> if results:
> configuration = get_testimage_configuration(d, 'runtime',
> machine)
> - results.logDetails(get_testimage_json_result_dir(d),
> + results.logDetails(get_json_result_dir(d),
> configuration,
> get_testimage_result_id(configuration),
>
> dump_streams=d.getVar('TESTREPORT_FULLLOGS'))
> results.logSummary(pn)
>
> # Copy additional logs to tmp/log/oeqa so it's easier to find
> them
> - targetdir = os.path.join(get_testimage_json_result_dir(d),
> d.getVar("PN"))
> + targetdir = os.path.join(get_json_result_dir(d), d.getVar("PN"))
> os.makedirs(targetdir, exist_ok=True)
> os.symlink(bootlog, os.path.join(targetdir,
> os.path.basename(bootlog)))
> os.symlink(d.getVar("BB_LOGFILE"), os.path.join(targetdir,
> os.path.basename(d.getVar("BB_LOGFILE") + "." +
> d.getVar('DATETIME'))))
> diff --git a/meta/lib/oeqa/sdk/testsdk.py
> b/meta/lib/oeqa/sdk/testsdk.py
> index b4719110edbc..518b09febb61 100644
> --- a/meta/lib/oeqa/sdk/testsdk.py
> +++ b/meta/lib/oeqa/sdk/testsdk.py
> @@ -22,14 +22,6 @@ class TestSDKBase(object):
> 'LAYERS': get_layers(d.getVar("BBLAYERS"))}
> return configuration
>
> - @staticmethod
> - def get_sdk_json_result_dir(d):
> - json_result_dir = os.path.join(d.getVar("LOG_DIR"), 'oeqa')
> - custom_json_result_dir = d.getVar("OEQA_JSON_RESULT_DIR")
> - if custom_json_result_dir:
> - json_result_dir = custom_json_result_dir
> - return json_result_dir
> -
> @staticmethod
> def get_sdk_result_id(configuration):
> return '%s_%s_%s_%s_%s' % (configuration['TEST_TYPE'],
> configuration['IMAGE_BASENAME'], configuration['SDKMACHINE'],
> configuration['MACHINE'], configuration['STARTTIME'])
> @@ -72,6 +64,7 @@ class TestSDK(TestSDKBase):
>
> from bb.utils import export_proxies
> from oeqa.utils import make_logger_bitbake_compatible
> + from oeqa.utils import get_json_result_dir
>
> pn = d.getVar("PN")
> logger =
> make_logger_bitbake_compatible(logging.getLogger("BitBake"))
> @@ -134,7 +127,7 @@ class TestSDK(TestSDKBase):
> component = "%s %s" % (pn,
> self.context_executor_class.name)
> context_msg = "%s:%s" % (os.path.basename(tcname),
> os.path.basename(sdk_env))
> configuration = self.get_sdk_configuration(d,
> self.test_type)
> - result.logDetails(self.get_sdk_json_result_dir(d),
> + result.logDetails(get_json_result_dir(d),
> configuration,
> self.get_sdk_result_id(configuration))
> result.logSummary(component, context_msg)
> diff --git a/meta/lib/oeqa/utils/__init__.py
> b/meta/lib/oeqa/utils/__init__.py
> index fbc7f7d525d8..53bdcbf26618 100644
> --- a/meta/lib/oeqa/utils/__init__.py
> +++ b/meta/lib/oeqa/utils/__init__.py
> @@ -90,3 +90,10 @@ def load_test_components(logger, executor):
> "_executor_class defined." %
> (comp_name, comp_context))
>
> return components
> +
> +def get_json_result_dir(d):
> + json_result_dir = os.path.join(d.getVar("LOG_DIR"), 'oeqa')
> + custom_json_result_dir = d.getVar("OEQA_JSON_RESULT_DIR")
> + if custom_json_result_dir:
> + json_result_dir = custom_json_result_dir
> + return json_result_dir
> \ No newline at end of file
>
I suspect this is missing a change to TestSDKEXT:
https://autobuilder.yoctoproject.org/typhoon/#/builders/136/builds/56/steps/14/logs/stdio
Cheers,
Richard
next prev parent reply other threads:[~2024-02-23 17:27 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-23 15:16 [OE-Core][PATCH v3 0/5] testimage: add failed test post actions and fetch more data Alexis Lothoré
2024-02-23 15:16 ` [OE-Core][PATCH v3 1/5] lib/oeqa: share get_json_result_dir helper Alexis Lothoré
2024-02-23 17:27 ` Richard Purdie [this message]
2024-02-23 17:36 ` Alexis Lothoré
2024-02-23 15:16 ` [OE-Core][PATCH v3 2/5] testimage: create a list of failed test post actions Alexis Lothoré
2024-02-23 15:16 ` [OE-Core][PATCH v3 3/5] oeqa/utils/postactions: isolate directory creation in dedicated action Alexis Lothoré
2024-02-23 15:16 ` [OE-Core][PATCH v3 4/5] oeqa/utils/postactions: add target disk usage stat as post action Alexis Lothoré
2024-02-23 15:16 ` [OE-Core][PATCH v3 5/5] oeqa/utils/postactions: testimage: add host " Alexis Lothoré
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d17283d1e037be26e5fd905853ff47c48d630e85.camel@linuxfoundation.org \
--to=richard.purdie@linuxfoundation.org \
--cc=Openembedded-core@lists.openembedded.org \
--cc=alexandre.belloni@bootlin.com \
--cc=alexis.lothore@bootlin.com \
--cc=thomas.petazzoni@bootlin.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox