From: "Rebecca Cran" <rebecca@bsdio.com>
To: mikuback@linux.microsoft.com, devel@edk2.groups.io
Cc: 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>
Subject: Re: [PATCH v1 1/1] BaseTools/Plugin: Clarify code coverage failure message
Date: Wed, 19 Apr 2023 11:50:04 -0600 [thread overview]
Message-ID: <e3ce092e-eb09-668a-17b8-b2096376c3b6@bsdio.com> (raw)
In-Reply-To: <20230418161104.595-1-mikuback@linux.microsoft.com>
Reviewed-by: Rebecca Cran <rebecca@bsdio.com>
On 4/18/23 10:11 AM, mikuback@linux.microsoft.com wrote:
> 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(
prev parent reply other threads:[~2023-04-19 17:50 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
2023-04-19 17:50 ` Rebecca Cran [this message]
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=e3ce092e-eb09-668a-17b8-b2096376c3b6@bsdio.com \
--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