Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove UefiBootServicesTableLib from inclusion file #354

Merged
merged 1 commit into from
Apr 14, 2023

Conversation

kuqin12
Copy link
Contributor

@kuqin12 kuqin12 commented Apr 13, 2023

Preface

Please ensure you have read the contribution docs prior
to submitting the pull request. In particular,
pull request guidelines.

Description

The inclusion file change will potentially change the library linkage of UefiBootServicesTableLib, which could be an incompatible instance compared to the existing consumers.

This change temporarily removes this inclusion until all unit tests from the consumers migrated their unit tests to the common implementation.

For each item, place an "x" in between [ and ] if true. Example: [x].
(you can also check items in the GitHub UI)

  • Impacts functionality?
    • Functionality - Does the change ultimately impact how firmware functions?
    • Examples: Add a new library, publish a new PPI, update an algorithm, ...
  • Impacts security?
    • Security - Does the change have a direct security impact on an application,
      flow, or firmware?
    • Examples: Crypto algorithm change, buffer overflow fix, parameter
      validation improvement, ...
  • Breaking change?
    • Breaking change - Will anyone consuming this change experience a break
      in build or boot behavior?
    • Examples: Add a new library class, move a module to a different repo, call
      a function in a new library class in a pre-existing module, ...
  • Includes tests?
    • Tests - Does the change include any explicit test code?
    • Examples: Unit tests, integration tests, robot tests, ...
  • Includes documentation?
    • Documentation - Does the change contain explicit documentation additions
      outside direct code modifications (and comments)?
    • Examples: Update readme file, add feature readme file, link to documentation
      on an a separate Web page, ...

How This Was Tested

This was tested on consumer packages that uses UefiBootServicesTableLib.

Integration Instructions

For packages uses UefiBootServicesTableLib|UnitTestFrameworkPkg/Library/UnitTestUefiBootServicesTableLib/UnitTestUefiBootServicesTableLib.inf for unit tests, one needs to update the host test dsc to include the entry. Otherwise, no changes needed.

@kuqin12 kuqin12 requested review from makubacki and os-d April 13, 2023 23:35
@kuqin12 kuqin12 requested a review from apop5 April 14, 2023 01:47
@kuqin12 kuqin12 enabled auto-merge (squash) April 14, 2023 01:55
@makubacki
Copy link
Member

Library instances in include files are typically meant to be included at the top of a DSC and overridden as needed by the package. Is that a problem here?

@kuqin12 kuqin12 disabled auto-merge April 14, 2023 02:11
@kuqin12
Copy link
Contributor Author

kuqin12 commented Apr 14, 2023

Library instances in include files are typically meant to be included at the top of a DSC and overridden as needed by the package. Is that a problem here?

The issue is that if the include file is more specific of a type than the end consumer, the more specific instance will supersede. For this case, the consuming dscs just have [LibraryClasses] for the UefiBootServicesLib

@makubacki
Copy link
Member

Library instances in include files are typically meant to be included at the top of a DSC and overridden as needed by the package. Is that a problem here?

The issue is that if the include file is more specific of a type than the end consumer, the more

Library instances in include files are typically meant to be included at the top of a DSC and overridden as needed by the package. Is that a problem here?

The issue is that if the include file is more specific of a type than the end consumer, the more specific instance will supersede. For this case, the consuming dscs just have [LibraryClasses] for the UefiBootServicesLib

We can make the change but some notes:

  1. UnitTestFrameworkPkgHost.dsc.inc has several common library classes assigned to instances (e.g. BaseLib, DebugLib, CpuLib, etc.) in [LibraryClasses.common.HOST_APPLICATION] so those would also be a problem if the platform wanted to override them.
  2. The platform should be aware of that the include DSC specifies its library class instances in [LibraryClasses.common.HOST_APPLICATION] and specify libraries for that module type in a module-specific section to prevent future occurrences of this (new library instances being added to the DSC include file they don't override).
  3. We should reduce Mu deltas and get back to parity with edk2 when possible.

@kuqin12
Copy link
Contributor Author

kuqin12 commented Apr 14, 2023

Library instances in include files are typically meant to be included at the top of a DSC and overridden as needed by the package. Is that a problem here?

The issue is that if the include file is more specific of a type than the end consumer, the more specific instance will supersede. For this case, the consuming dscs just have [LibraryClasses] for the UefiBootServicesLib

Agreed. An issue is logged here: #356. Will remove this deviation after resolving the consuming dsc issues.

@kuqin12 kuqin12 merged commit 0503647 into microsoft:release/202208 Apr 14, 2023
@kuqin12 kuqin12 mentioned this pull request Apr 14, 2023
5 tasks
kuqin12 added a commit that referenced this pull request Apr 14, 2023
# Preface

Please ensure you have read the [contribution
docs](https://github.com/microsoft/mu/blob/master/CONTRIBUTING.md) prior
to submitting the pull request. In particular,
[pull request
guidelines](https://github.com/microsoft/mu/blob/master/CONTRIBUTING.md#pull-request-best-practices).

## Description

This change fixed a host unit test break introduced in
#354.

It should be removed when resolving this issue
#356.

For each item, place an "x" in between `[` and `]` if true. Example:
`[x]`.
_(you can also check items in the GitHub UI)_

- [ ] Impacts functionality?
- **Functionality** - Does the change ultimately impact how firmware
functions?
- Examples: Add a new library, publish a new PPI, update an algorithm,
...
- [ ] Impacts security?
- **Security** - Does the change have a direct security impact on an
application,
    flow, or firmware?
  - Examples: Crypto algorithm change, buffer overflow fix, parameter
    validation improvement, ...
- [ ] Breaking change?
- **Breaking change** - Will anyone consuming this change experience a
break
    in build or boot behavior?
- Examples: Add a new library class, move a module to a different repo,
call
    a function in a new library class in a pre-existing module, ...
- [x] Includes tests?
  - **Tests** - Does the change include any explicit test code?
  - Examples: Unit tests, integration tests, robot tests, ...
- [ ] Includes documentation?
- **Documentation** - Does the change contain explicit documentation
additions
    outside direct code modifications (and comments)?
- Examples: Update readme file, add feature readme file, link to
documentation
    on an a separate Web page, ...

## How This Was Tested

This was tested on the pipeline.

## Integration Instructions

N/A
kuqin12 added a commit to kuqin12/mu_basecore that referenced this pull request Apr 21, 2023
kuqin12 added a commit that referenced this pull request Apr 22, 2023
# Preface

Please ensure you have read the [contribution
docs](https://github.com/microsoft/mu/blob/master/CONTRIBUTING.md) prior
to submitting the pull request. In particular,
[pull request
guidelines](https://github.com/microsoft/mu/blob/master/CONTRIBUTING.md#pull-request-best-practices).

## Description

This change reverts the override added in the
`UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc` from
#354 and impacted package
from #357. The impacted
consumer should have included their own fixes, thus removing this change
to prevent more debts collected in BASECORE.

Fixes #356

For each item, place an "x" in between `[` and `]` if true. Example:
`[x]`.
_(you can also check items in the GitHub UI)_

- [x] Impacts functionality?
- **Functionality** - Does the change ultimately impact how firmware
functions?
- Examples: Add a new library, publish a new PPI, update an algorithm,
...
- [ ] Impacts security?
- **Security** - Does the change have a direct security impact on an
application,
    flow, or firmware?
  - Examples: Crypto algorithm change, buffer overflow fix, parameter
    validation improvement, ...
- [ ] Breaking change?
- **Breaking change** - Will anyone consuming this change experience a
break
    in build or boot behavior?
- Examples: Add a new library class, move a module to a different repo,
call
    a function in a new library class in a pre-existing module, ...
- [x] Includes tests?
  - **Tests** - Does the change include any explicit test code?
  - Examples: Unit tests, integration tests, robot tests, ...
- [ ] Includes documentation?
- **Documentation** - Does the change contain explicit documentation
additions
    outside direct code modifications (and comments)?
- Examples: Update readme file, add feature readme file, link to
documentation
    on an a separate Web page, ...

## How This Was Tested

This is unit test include file change. Tested on proprietary consumer
packages.

## Integration Instructions

N/A
TaylorBeebe pushed a commit to TaylorBeebe/mu_basecore that referenced this pull request Apr 27, 2023
# Preface

Please ensure you have read the [contribution
docs](https://github.com/microsoft/mu/blob/master/CONTRIBUTING.md) prior
to submitting the pull request. In particular,
[pull request
guidelines](https://github.com/microsoft/mu/blob/master/CONTRIBUTING.md#pull-request-best-practices).

## Description

The inclusion file change will potentially change the library linkage of
`UefiBootServicesTableLib`, which could be an incompatible instance
compared to the existing consumers.

This change temporarily removes this inclusion until all unit tests from
the consumers migrated their unit tests to the common implementation.

For each item, place an "x" in between `[` and `]` if true. Example:
`[x]`.
_(you can also check items in the GitHub UI)_

- [x] Impacts functionality?
- **Functionality** - Does the change ultimately impact how firmware
functions?
- Examples: Add a new library, publish a new PPI, update an algorithm,
...
- [ ] Impacts security?
- **Security** - Does the change have a direct security impact on an
application,
    flow, or firmware?
  - Examples: Crypto algorithm change, buffer overflow fix, parameter
    validation improvement, ...
- [ ] Breaking change?
- **Breaking change** - Will anyone consuming this change experience a
break
    in build or boot behavior?
- Examples: Add a new library class, move a module to a different repo,
call
    a function in a new library class in a pre-existing module, ...
- [ ] Includes tests?
  - **Tests** - Does the change include any explicit test code?
  - Examples: Unit tests, integration tests, robot tests, ...
- [ ] Includes documentation?
- **Documentation** - Does the change contain explicit documentation
additions
    outside direct code modifications (and comments)?
- Examples: Update readme file, add feature readme file, link to
documentation
    on an a separate Web page, ...

## How This Was Tested

This was tested on consumer packages that uses
`UefiBootServicesTableLib`.

## Integration Instructions

For packages uses
`UefiBootServicesTableLib|UnitTestFrameworkPkg/Library/UnitTestUefiBootServicesTableLib/UnitTestUefiBootServicesTableLib.inf`
for unit tests, one needs to update the host test dsc to include the
entry. Otherwise, no changes needed.
TaylorBeebe pushed a commit to TaylorBeebe/mu_basecore that referenced this pull request Apr 27, 2023
# Preface

Please ensure you have read the [contribution
docs](https://github.com/microsoft/mu/blob/master/CONTRIBUTING.md) prior
to submitting the pull request. In particular,
[pull request
guidelines](https://github.com/microsoft/mu/blob/master/CONTRIBUTING.md#pull-request-best-practices).

## Description

This change fixed a host unit test break introduced in
microsoft#354.

It should be removed when resolving this issue
microsoft#356.

For each item, place an "x" in between `[` and `]` if true. Example:
`[x]`.
_(you can also check items in the GitHub UI)_

- [ ] Impacts functionality?
- **Functionality** - Does the change ultimately impact how firmware
functions?
- Examples: Add a new library, publish a new PPI, update an algorithm,
...
- [ ] Impacts security?
- **Security** - Does the change have a direct security impact on an
application,
    flow, or firmware?
  - Examples: Crypto algorithm change, buffer overflow fix, parameter
    validation improvement, ...
- [ ] Breaking change?
- **Breaking change** - Will anyone consuming this change experience a
break
    in build or boot behavior?
- Examples: Add a new library class, move a module to a different repo,
call
    a function in a new library class in a pre-existing module, ...
- [x] Includes tests?
  - **Tests** - Does the change include any explicit test code?
  - Examples: Unit tests, integration tests, robot tests, ...
- [ ] Includes documentation?
- **Documentation** - Does the change contain explicit documentation
additions
    outside direct code modifications (and comments)?
- Examples: Update readme file, add feature readme file, link to
documentation
    on an a separate Web page, ...

## How This Was Tested

This was tested on the pipeline.

## Integration Instructions

N/A
TaylorBeebe pushed a commit to TaylorBeebe/mu_basecore that referenced this pull request Apr 27, 2023
# Preface

Please ensure you have read the [contribution
docs](https://github.com/microsoft/mu/blob/master/CONTRIBUTING.md) prior
to submitting the pull request. In particular,
[pull request
guidelines](https://github.com/microsoft/mu/blob/master/CONTRIBUTING.md#pull-request-best-practices).

## Description

This change reverts the override added in the
`UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc` from
microsoft#354 and impacted package
from microsoft#357. The impacted
consumer should have included their own fixes, thus removing this change
to prevent more debts collected in BASECORE.

Fixes microsoft#356

For each item, place an "x" in between `[` and `]` if true. Example:
`[x]`.
_(you can also check items in the GitHub UI)_

- [x] Impacts functionality?
- **Functionality** - Does the change ultimately impact how firmware
functions?
- Examples: Add a new library, publish a new PPI, update an algorithm,
...
- [ ] Impacts security?
- **Security** - Does the change have a direct security impact on an
application,
    flow, or firmware?
  - Examples: Crypto algorithm change, buffer overflow fix, parameter
    validation improvement, ...
- [ ] Breaking change?
- **Breaking change** - Will anyone consuming this change experience a
break
    in build or boot behavior?
- Examples: Add a new library class, move a module to a different repo,
call
    a function in a new library class in a pre-existing module, ...
- [x] Includes tests?
  - **Tests** - Does the change include any explicit test code?
  - Examples: Unit tests, integration tests, robot tests, ...
- [ ] Includes documentation?
- **Documentation** - Does the change contain explicit documentation
additions
    outside direct code modifications (and comments)?
- Examples: Update readme file, add feature readme file, link to
documentation
    on an a separate Web page, ...

## How This Was Tested

This is unit test include file change. Tested on proprietary consumer
packages.

## Integration Instructions

N/A
kenlautner pushed a commit that referenced this pull request Apr 28, 2023
# Preface

Please ensure you have read the [contribution
docs](https://github.com/microsoft/mu/blob/master/CONTRIBUTING.md) prior
to submitting the pull request. In particular,
[pull request
guidelines](https://github.com/microsoft/mu/blob/master/CONTRIBUTING.md#pull-request-best-practices).

## Description

The inclusion file change will potentially change the library linkage of
`UefiBootServicesTableLib`, which could be an incompatible instance
compared to the existing consumers.

This change temporarily removes this inclusion until all unit tests from
the consumers migrated their unit tests to the common implementation.

For each item, place an "x" in between `[` and `]` if true. Example:
`[x]`.
_(you can also check items in the GitHub UI)_

- [x] Impacts functionality?
- **Functionality** - Does the change ultimately impact how firmware
functions?
- Examples: Add a new library, publish a new PPI, update an algorithm,
...
- [ ] Impacts security?
- **Security** - Does the change have a direct security impact on an
application,
    flow, or firmware?
  - Examples: Crypto algorithm change, buffer overflow fix, parameter
    validation improvement, ...
- [ ] Breaking change?
- **Breaking change** - Will anyone consuming this change experience a
break
    in build or boot behavior?
- Examples: Add a new library class, move a module to a different repo,
call
    a function in a new library class in a pre-existing module, ...
- [ ] Includes tests?
  - **Tests** - Does the change include any explicit test code?
  - Examples: Unit tests, integration tests, robot tests, ...
- [ ] Includes documentation?
- **Documentation** - Does the change contain explicit documentation
additions
    outside direct code modifications (and comments)?
- Examples: Update readme file, add feature readme file, link to
documentation
    on an a separate Web page, ...

## How This Was Tested

This was tested on consumer packages that uses
`UefiBootServicesTableLib`.

## Integration Instructions

For packages uses
`UefiBootServicesTableLib|UnitTestFrameworkPkg/Library/UnitTestUefiBootServicesTableLib/UnitTestUefiBootServicesTableLib.inf`
for unit tests, one needs to update the host test dsc to include the
entry. Otherwise, no changes needed.
kenlautner pushed a commit that referenced this pull request Apr 28, 2023
# Preface

Please ensure you have read the [contribution
docs](https://github.com/microsoft/mu/blob/master/CONTRIBUTING.md) prior
to submitting the pull request. In particular,
[pull request
guidelines](https://github.com/microsoft/mu/blob/master/CONTRIBUTING.md#pull-request-best-practices).

## Description

This change fixed a host unit test break introduced in
#354.

It should be removed when resolving this issue
#356.

For each item, place an "x" in between `[` and `]` if true. Example:
`[x]`.
_(you can also check items in the GitHub UI)_

- [ ] Impacts functionality?
- **Functionality** - Does the change ultimately impact how firmware
functions?
- Examples: Add a new library, publish a new PPI, update an algorithm,
...
- [ ] Impacts security?
- **Security** - Does the change have a direct security impact on an
application,
    flow, or firmware?
  - Examples: Crypto algorithm change, buffer overflow fix, parameter
    validation improvement, ...
- [ ] Breaking change?
- **Breaking change** - Will anyone consuming this change experience a
break
    in build or boot behavior?
- Examples: Add a new library class, move a module to a different repo,
call
    a function in a new library class in a pre-existing module, ...
- [x] Includes tests?
  - **Tests** - Does the change include any explicit test code?
  - Examples: Unit tests, integration tests, robot tests, ...
- [ ] Includes documentation?
- **Documentation** - Does the change contain explicit documentation
additions
    outside direct code modifications (and comments)?
- Examples: Update readme file, add feature readme file, link to
documentation
    on an a separate Web page, ...

## How This Was Tested

This was tested on the pipeline.

## Integration Instructions

N/A
kenlautner pushed a commit that referenced this pull request Apr 28, 2023
# Preface

Please ensure you have read the [contribution
docs](https://github.com/microsoft/mu/blob/master/CONTRIBUTING.md) prior
to submitting the pull request. In particular,
[pull request
guidelines](https://github.com/microsoft/mu/blob/master/CONTRIBUTING.md#pull-request-best-practices).

## Description

This change reverts the override added in the
`UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc` from
#354 and impacted package
from #357. The impacted
consumer should have included their own fixes, thus removing this change
to prevent more debts collected in BASECORE.

Fixes #356

For each item, place an "x" in between `[` and `]` if true. Example:
`[x]`.
_(you can also check items in the GitHub UI)_

- [x] Impacts functionality?
- **Functionality** - Does the change ultimately impact how firmware
functions?
- Examples: Add a new library, publish a new PPI, update an algorithm,
...
- [ ] Impacts security?
- **Security** - Does the change have a direct security impact on an
application,
    flow, or firmware?
  - Examples: Crypto algorithm change, buffer overflow fix, parameter
    validation improvement, ...
- [ ] Breaking change?
- **Breaking change** - Will anyone consuming this change experience a
break
    in build or boot behavior?
- Examples: Add a new library class, move a module to a different repo,
call
    a function in a new library class in a pre-existing module, ...
- [x] Includes tests?
  - **Tests** - Does the change include any explicit test code?
  - Examples: Unit tests, integration tests, robot tests, ...
- [ ] Includes documentation?
- **Documentation** - Does the change contain explicit documentation
additions
    outside direct code modifications (and comments)?
- Examples: Update readme file, add feature readme file, link to
documentation
    on an a separate Web page, ...

## How This Was Tested

This is unit test include file change. Tested on proprietary consumer
packages.

## Integration Instructions

N/A
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants