audk/.pytool/Plugin/HostUnitTestDscCompleteCheck
Michael D Kinney 61364ab927 .pytool: Add CI support for host based unit tests with results
https://bugzilla.tianocore.org/show_bug.cgi?id=2505

* Add plugin to build and run host based unit tests
* Add plugin that performs a DSC complete check DSC files
  used to build host based tests
* Update DscCompleteCheck plugin to ignore module INFs with
  a MODULE_TYPE of HOST_APPLICATION and library INFs that
  only support a module type of HOST_APPLICATION.
* Fix issues in XML reports from checkers.

Cc: Sean Brogan <sean.brogan@microsoft.com>
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
Reviewed-by: Bret Barkelew <Bret.Barkelew@microsoft.com>
2020-02-07 19:18:53 +00:00
..
HostUnitTestDscCompleteCheck.py .pytool: Add CI support for host based unit tests with results 2020-02-07 19:18:53 +00:00
HostUnitTestDscCompleteCheck_plug_in.yaml .pytool: Add CI support for host based unit tests with results 2020-02-07 19:18:53 +00:00
Readme.md .pytool: Add CI support for host based unit tests with results 2020-02-07 19:18:53 +00:00

Readme.md

Host Unit Test Dsc Complete Check Plugin

This CiBuildPlugin scans all INF files from a package for those related to host based unit tests confirms they are listed in the unit test DSC file for the package. The test considers it an error if any INF meeting the requirements does not appear in the Components section of the unit test DSC. This is critical because much of the CI infrastructure assumes that modules will be listed in the DSC and compiled.

This test will only require INFs in the following cases:

  1. When MODULE_TYPE = HOST_APPLICATION
  2. When a Library instance supports the HOST_APPLICATION environment

Configuration

The plugin has a few configuration options to support the UEFI codebase.

"HostUnitTestDscCompleteCheck": {
    "DscPath": "", # Path to Host based unit test DSC file
    "IgnoreInf": []  # Ignore INF if found in filesystem but not dsc
}

DscPath

Path to DSC to consider platform dsc

IgnoreInf

Ignore error if Inf file is not listed in DSC file