public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Sophia Wang via groups.io" <yodagump=google.com@groups.io>
To: Sami Mujawar <Sami.Mujawar@arm.com>
Cc: "devel@edk2.groups.io" <devel@edk2.groups.io>,
	 "Jeff Brasen (jbrasen@nvidia.com)" <jbrasen@nvidia.com>,
	Pierre Gondois <Pierre.Gondois@arm.com>,
	 Yeo Reum Yun <YeoReum.Yun@arm.com>,
	Sarah Walker <Sarah.Walker2@arm.com>
Subject: Re: [edk2-devel] ACPI table generator unit test
Date: Thu, 27 Mar 2025 09:55:33 -0700	[thread overview]
Message-ID: <CALBWN3_Qq=ZXc2b=KKXeV2Ce2cVPHLYnoKs3O6rGo09SGwkQVg@mail.gmail.com> (raw)
In-Reply-To: <AS8PR08MB6806BD545F1BFA0515F5814A84A12@AS8PR08MB6806.eurprd08.prod.outlook.com>

[-- Attachment #1: Type: text/plain, Size: 3552 bytes --]

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,
>
>
>
> I plan to use EDK2 unit test framework (
> https://github.com/SophiaWang-Google/edk2/tree/master/UnitTestFrameworkPkg)
> to test ACPI table generator, such as
> https://github.com/tianocore/edk2/blob/master/DynamicTablesPkg/Library/Acpi/Arm/AcpiGtdtLibArm/GtdtGenerator.c
>
>
>
> 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): https://edk2.groups.io/g/devel/message/121231
Mute This Topic: https://groups.io/mt/111930977/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



[-- Attachment #2: Type: text/html, Size: 7928 bytes --]

      reply	other threads:[~2025-03-27 16:56 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-20 22:56 [edk2-devel] ACPI table generator unit test yodagump via groups.io
2025-03-27 13:36 ` Sami Mujawar via groups.io
2025-03-27 16:55   ` Sophia Wang via groups.io [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='CALBWN3_Qq=ZXc2b=KKXeV2Ce2cVPHLYnoKs3O6rGo09SGwkQVg@mail.gmail.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