Thanks Sami for the reply.

https://github.com/tianocore/edk2/pull/10833/files is indeed adding mock configuration manager protocols for unit tests. But the issue for unit test code cannot call the build function of ACPI table generator still exists. Currently we only have two non-static function exposed 

EFI_STATUS
EFIAPI
AcpiGtdtLibConstructor (
  IN  EFI_HANDLE        ImageHandle,
  IN  EFI_SYSTEM_TABLE  *SystemTable
  )

EFI_STATUS
EFIAPI
AcpiGtdtLibDestructor (
  IN  EFI_HANDLE        ImageHandle,
  IN  EFI_SYSTEM_TABLE  *SystemTable
  ) 

And IMO, we need to expose more functions as non-static for the ACPI table unit test purpose. Please feel free to share your insights.

Best,
Sophia

On Thu, Mar 27, 2025 at 6:37 AM Sami Mujawar <Sami.Mujawar@arm.com> wrote:

Hi Sophia,

 

Unfortunately, I am not conversant with the Google Test framework. I will need to get around to understanding it at some point.

 

However, there is a recent PR that adds some tests. Can you take a look at the patch at: https://github.com/tianocore/edk2/pull/10833/commits/4eeeb1434820718ace1670d9429a867fe5e8c9b7

to see if it helps, please?

 

Regards,

 

Sami Mujawar

From: devel@edk2.groups.io <devel@edk2.groups.io> on behalf of yodagump via groups.io <yodagump=google.com@groups.io>
Date: Thursday, 27 March 2025 at 04:10
To: devel@edk2.groups.io <devel@edk2.groups.io>
Subject: [edk2-devel] ACPI table generator unit test

Hi,

 

 

However, ACPI table generator only has two non-static function exposed:

EFI_STATUS
EFIAPI
AcpiGtdtLibConstructor (
  IN  EFI_HANDLE        ImageHandle,
  IN  EFI_SYSTEM_TABLE  *SystemTable
  )

EFI_STATUS
EFIAPI
AcpiGtdtLibDestructor (
  IN  EFI_HANDLE        ImageHandle,
  IN  EFI_SYSTEM_TABLE  *SystemTable
  )

 

So if we want to use GoogleTest gMock to unit test ACPI table generator, I guess we need to expose API :

STATIC
EFI_STATUS
EFIAPI
BuildGtdtTable (
  IN  CONST ACPI_TABLE_GENERATOR                  *CONST  This,
  IN  CONST CM_STD_OBJ_ACPI_TABLE_INFO            *CONST  AcpiTableInfo,
  IN  CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL  *CONST  CfgMgrProtocol,
  OUT       EFI_ACPI_DESCRIPTION_HEADER          **CONST  Table
  )

to non-static

 

Please let me whether this is the approach upstream target for, or any better solutions on this? 

 

Thank you,

Sophia

 

IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
_._,_._,_

Groups.io Links:

You receive all messages sent to this group.

View/Reply Online (#121231) | | Mute This Topic | New Topic
Your Subscription | Contact Group Owner | Unsubscribe [rebecca@openfw.io]

_._,_._,_