From: "gaoliming" <gaoliming@byosoft.com.cn>
To: <mikuback@linux.microsoft.com>, <devel@edk2.groups.io>
Cc: "'Rebecca Cran'" <rebecca@bsdio.com>,
"'Bob Feng'" <bob.c.feng@intel.com>,
"'Yuwei Chen'" <yuwei.chen@intel.com>,
"'Michael D Kinney'" <michael.d.kinney@intel.com>,
"'Sean Brogan'" <sean.brogan@microsoft.com>
Subject: 回复: [PATCH v1 1/1] BaseTools/Plugin: Clarify code coverage failure message
Date: Wed, 19 Apr 2023 10:59:14 +0800 [thread overview]
Message-ID: <011001d9726a$ec9aad40$c5d007c0$@byosoft.com.cn> (raw)
In-Reply-To: <20230418161104.595-1-mikuback@linux.microsoft.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
> -----邮件原件-----
> 发件人: mikuback@linux.microsoft.com <mikuback@linux.microsoft.com>
> 发送时间: 2023年4月19日 0:11
> 收件人: devel@edk2.groups.io
> 抄送: Rebecca Cran <rebecca@bsdio.com>; Liming Gao
> <gaoliming@byosoft.com.cn>; Bob Feng <bob.c.feng@intel.com>; Yuwei Chen
> <yuwei.chen@intel.com>; Michael D Kinney <michael.d.kinney@intel.com>;
> Sean Brogan <sean.brogan@microsoft.com>
> 主题: [PATCH v1 1/1] BaseTools/Plugin: Clarify code coverage failure
message
>
> From: Michael Kubacki <michael.kubacki@microsoft.com>
>
> HostBasedUnitTestRunner.py is a build plugin responsible for locating
> and executing host-based unit tests.
>
> Recently, commit 6bb00aa introduced support for the plugin to
> generate code coverage reports via lcov and OpenCppCoverage.
>
> The plugin has discovered unit tests by searching for executables
> with "Test" in the name for a while. However, the test coverage
> change makes assumptions about test presence when crafting the
> OpenCppCoverage command that ultimately fails with an ambiguous error
> message if no host-based unit tests are discovered (see "ERROR").
>
> ```
> SECTION - Run Host based Unit Tests
> SUBSECTION - Testing for architecture: X64
> ERROR - UnitTest Coverage: Failed to generate cobertura format xml in
> single package.
> PROGRESS - --->Test Success: Host Unit Test Compiler Plugin NOOPT
> ```
>
> This change preempts that message with a check in the plugin to
> determine if any host-based tests were discovered. If not, a message
> is printed with more guidance about how the developer should proceed
> to either (1) fix their tests so code coverage is generated as
> expected or (2) prevent the error message.
>
> New message:
>
> ```
> SECTION - Run Host based Unit Tests
> SUBSECTION - Testing for architecture: X64
> WARNING - UnitTest Coverage:
> No unit tests discovered. Test coverage will not be generated.
>
> Prevent this message by:
> 1. Adding host-based unit tests to this package
> 2. Ensuring tests have the word "Test" in their name
> 3. Disabling HostUnitTestCompilerPlugin in the package CI YAML file
> PROGRESS - --->Test Success: Host Unit Test Compiler Plugin NOOPT
> ```
>
> Cc: Rebecca Cran <rebecca@bsdio.com>
> Cc: Liming Gao <gaoliming@byosoft.com.cn>
> Cc: Bob Feng <bob.c.feng@intel.com>
> Cc: Yuwei Chen <yuwei.chen@intel.com>
> Cc: Michael D Kinney <michael.d.kinney@intel.com>
> Cc: Sean Brogan <sean.brogan@microsoft.com>
> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
> ---
> BaseTools/Plugin/HostBasedUnitTestRunner/HostBasedUnitTestRunner.py |
> 13 +++++++++++++
> 1 file changed, 13 insertions(+)
>
> diff --git
> a/BaseTools/Plugin/HostBasedUnitTestRunner/HostBasedUnitTestRunner.py
> b/BaseTools/Plugin/HostBasedUnitTestRunner/HostBasedUnitTestRunner.py
> index 0e013c5f1a7f..a384b556294c 100644
> ---
> a/BaseTools/Plugin/HostBasedUnitTestRunner/HostBasedUnitTestRunner.py
> +++
> b/BaseTools/Plugin/HostBasedUnitTestRunner/HostBasedUnitTestRunner.py
> @@ -16,6 +16,7 @@ import edk2toollib.windows.locate_tools as locate_tools
> from edk2toolext.environment import shell_environment
> from edk2toollib.utility_functions import RunCmd
> from edk2toollib.utility_functions import GetHostInfo
> +from textwrap import dedent
>
>
> class HostBasedUnitTestRunner(IUefiBuildPlugin):
> @@ -84,6 +85,18 @@ class HostBasedUnitTestRunner(IUefiBuildPlugin):
> else:
> raise NotImplementedError("Unsupported Operating
> System")
>
> + if not testList:
> + logging.warning(dedent("""
> + UnitTest Coverage:
> + No unit tests discovered. Test coverage will not
> be generated.
> +
> + Prevent this message by:
> + 1. Adding host-based unit tests to this package
> + 2. Ensuring tests have the word "Test" in their
> name
> + 3. Disabling HostUnitTestCompilerPlugin in the
> package CI YAML file
> + """).strip())
> + return 0
> +
> for test in testList:
> # Configure output name if test uses cmocka.
> shell_env.set_shell_var(
> --
> 2.40.0.windows.1
next prev parent reply other threads:[~2023-04-19 2:59 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-18 16:11 [PATCH v1 1/1] BaseTools/Plugin: Clarify code coverage failure message Michael Kubacki
2023-04-19 2:59 ` gaoliming [this message]
2023-04-19 17:50 ` Rebecca Cran
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-list 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='011001d9726a$ec9aad40$c5d007c0$@byosoft.com.cn' \
--to=devel@edk2.groups.io \
/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