-
Notifications
You must be signed in to change notification settings - Fork 46
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
database: multiple bugfixes #393
Merged
Javagedes
merged 13 commits into
tianocore:master
from
Javagedes:bugfix-instanced_inf_table
Sep 6, 2023
Merged
database: multiple bugfixes #393
Javagedes
merged 13 commits into
tianocore:master
from
Javagedes:bugfix-instanced_inf_table
Sep 6, 2023
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Codecov ReportPatch coverage:
Additional details and impacted files@@ Coverage Diff @@
## master #393 +/- ##
==========================================
+ Coverage 80.97% 81.06% +0.09%
==========================================
Files 60 60
Lines 7268 7304 +36
==========================================
+ Hits 5885 5921 +36
Misses 1383 1383
☔ View full report in Codecov by Sentry. |
Javagedes
force-pushed
the
bugfix-instanced_inf_table
branch
from
August 21, 2023 21:33
ae725ad
to
954e553
Compare
Javagedes
changed the title
instanced_inf_table: Account for supported phases in INF
instanced_inf_table: multiple bugfixes
Aug 21, 2023
Javagedes
changed the title
instanced_inf_table: multiple bugfixes
[REBASE&FF] instanced_inf_table: multiple bugfixes
Aug 21, 2023
Javagedes
force-pushed
the
bugfix-instanced_inf_table
branch
3 times, most recently
from
August 21, 2023 22:45
b67b71f
to
3e1e83b
Compare
the instanced_inf_table generator did not account for the fact that library class instances can choose to only support phases. This commit adds that support in two phases: 1. Updates the DSC parser's ScopedLibraryDict to store a list of instances that match the scope, instead of the first instance it finds. 2. The instanced_inf_table generator now checks the list of instances ( in order of appearance in the DSC) to find the first instance that matches the scope, but also supports the specific phase.
Due to platforms performing complex includes in their DSCs, There is a scenario in which a library instance references a library class that does not exist. This is not an error as the library class instance may not be consumed by a component in the platform, so the missing dependency is acceptable. This commit adds the ability to handle this scenario, and will not raise an error for a missing library instance.
Javagedes
force-pushed
the
bugfix-instanced_inf_table
branch
3 times, most recently
from
August 22, 2023 21:29
8c72eb3
to
9ddffb0
Compare
The LIBRARIES_USED column in the instanced_inf table only contained the the edk2 relative path to the library instance. This made it impossible to determine (with 100% accuracy) which library class the particular library instance was representing. This commit changes the "LIBRARIES_USED" column to contain a list of (lib_class, lib_instance) tuples rather than a list of lib_instances. Tests
Previously, the library class name for a library INF was not included in the table. This commit adds that information to the table as a row to make it easier to find the library class name for a library INF.
Javagedes
force-pushed
the
bugfix-instanced_inf_table
branch
from
August 22, 2023 21:33
9ddffb0
to
f165c95
Compare
Javagedes
changed the title
[REBASE&FF] instanced_inf_table: multiple bugfixes
database: multiple bugfixes
Aug 29, 2023
Javagedes
force-pushed
the
bugfix-instanced_inf_table
branch
5 times, most recently
from
August 29, 2023 22:39
de594b0
to
6fa229c
Compare
the instanced_inf_table generator did not account for the fact that library class instances can choose to only support phases. This commit adds that support in two phases: 1. Updates the DSC parser's ScopedLibraryDict to store a list of instances that match the scope, instead of the first instance it finds. 2. The instanced_inf_table generator now checks the list of instances ( in order of appearance in the DSC) to find the first instance that matches the scope, but also supports the specific phase.
Due to platforms performing complex includes in their DSCs, There is a scenario in which a library instance references a library class that does not exist. This is not an error as the library class instance may not be consumed by a component in the platform, so the missing dependency is acceptable. This commit adds the ability to handle this scenario, and will not raise an error for a missing library instance.
The LIBRARIES_USED column in the instanced_inf table only contained the the edk2 relative path to the library instance. This made it impossible to determine (with 100% accuracy) which library class the particular library instance was representing. This commit changes the "LIBRARIES_USED" column to contain a list of (lib_class, lib_instance) tuples rather than a list of lib_instances. Tests
Previously, the library class name for a library INF was not included in the table. This commit adds that information to the table as a row to make it easier to find the library class name for a library INF.
When parsing an FDF file, an INF can be prepending with a RuleOverride directive. The previous functionality to ignore this directive and retrive the actual INF value could not handle any spaces in the directive (such as RuleOverride = ACPITABLE). This commit expands the ability to handle spaces in the directive.
Javagedes
force-pushed
the
bugfix-instanced_inf_table
branch
from
August 29, 2023 22:49
6fa229c
to
f14ab1e
Compare
makubacki
reviewed
Sep 6, 2023
cfernald
approved these changes
Sep 6, 2023
makubacki
reviewed
Sep 6, 2023
makubacki
approved these changes
Sep 6, 2023
…_table' of https://github.com/javagedes/edk2-pytool-library into bugfix-instanced_inf_table
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following database changes:
[bug] Account for library instances that do not exist in the DSC
The instanced_inf_table generator did not account for the fact that
library class instances can choose to only support phases.
Updates the DSC parser's ScopedLibraryDict to store a list of
instances that match the scope, instead of the first instance it finds.
The instanced_inf_table generator now checks the list of instances (
in order of appearance in the DSC) to find the first instance that
matches the scope, but also supports the specific phase.
[bug] Account for library instances that support only a subset of phases.
Due to platforms performing complex includes in their DSCs, There is a
scenario in which a library instance references a library class that
does not exist. This is not an error as the library class instance may
not be consumed by a component in the platform, so the missing
dependency is acceptable.
This commit adds the ability to handle this scenario, and will not raise
an error for a missing library instance.
[enhancement] Include library class and library instance in "LIBRARIES_USED" column of the instanced_inf table
The LIBRARIES_USED column in the instanced_inf table only contained
the the edk2 relative path to the library instance. This made it
impossible to determine (with 100% accuracy) which library class the
particular library instance was representing.
This commit changes the "LIBRARIES_USED" column to contain a list of
(lib_class, lib_instance) tuples rather than a list of lib_instances.
Please review commit messages in each for a more detailed description.
[enhancement] Include "LIBRARY_CLASS" column in instanced_inf table
Previously, the library class name for a library INF was not included
in the table. This commit adds that information to the table as a row
to make it easier to find the library class name for a library INF.
[bug] Better handling of RuleOverride in instanced_fv_table
When parsing an FDF file, an INF can be prepending with a RuleOverride
directive. The previous functionality to ignore this directive and
retrive the actual INF value could not handle any spaces in the
directive (such as RuleOverride = ACPITABLE). This commit expands the
ability to handle spaces in the directive.