public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [Patch 1/1] UnitTestFrameworkPkg: Library classes private to public
@ 2022-11-30 21:19 Michael D Kinney
  2022-11-30 23:02 ` [edk2-devel] " Michael Kubacki
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Michael D Kinney @ 2022-11-30 21:19 UTC (permalink / raw)
  To: devel; +Cc: Michael Kubacki, Sean Brogan, Ray Ni, Zhiguang Liu

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4178

* Change GoogleTestLib class from private to public.
* Change UnitTestPersistenceLib class from private to public.

Cc: Michael Kubacki <mikuback@linux.microsoft.com>
Cc: Sean Brogan <sean.brogan@microsoft.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Zhiguang Liu <zhiguang.liu@intel.com>
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
---
 .../Library/UnitTestPersistenceLib.h                |  0
 UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec       | 13 +++++++------
 2 files changed, 7 insertions(+), 6 deletions(-)
 rename UnitTestFrameworkPkg/{PrivateInclude => Include}/Library/UnitTestPersistenceLib.h (100%)

diff --git a/UnitTestFrameworkPkg/PrivateInclude/Library/UnitTestPersistenceLib.h b/UnitTestFrameworkPkg/Include/Library/UnitTestPersistenceLib.h
similarity index 100%
rename from UnitTestFrameworkPkg/PrivateInclude/Library/UnitTestPersistenceLib.h
rename to UnitTestFrameworkPkg/Include/Library/UnitTestPersistenceLib.h
diff --git a/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec b/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
index ed12f32009d8..14e387d63a0f 100644
--- a/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
+++ b/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
@@ -26,11 +26,16 @@ [Includes.Common.Private]
   Library/CmockaLib/cmocka/include/cmockery
   Library/GoogleTestLib/googletest/googletest
 
-[LibraryClasses.Common.Private]
+[LibraryClasses]
   ## @libraryclass Allows save and restore unit test internal state
   #
-  UnitTestPersistenceLib|PrivateInclude/Library/UnitTestPersistenceLib.h
+  UnitTestPersistenceLib|Include/Library/UnitTestPersistenceLib.h
 
+  ## @libraryclass GoogleTest infrastructure
+  #
+  GoogleTestLib|Include/Library/GoogleTestLib.h
+
+[LibraryClasses.Common.Private]
   ## @libraryclass Provides a unit test result report
   #
   UnitTestResultReportLib|PrivateInclude/Library/UnitTestResultReportLib.h
@@ -39,10 +44,6 @@ [LibraryClasses.Common.Private]
   #
   UnitTestBootLib|PrivateInclude/Library/UnitTestBootLib.h
 
-  ## @libraryclass GoogleTest infrastructure
-  #
-  GoogleTestLib|Include/Library/GoogleTestLib.h
-
 [Guids]
   gUnitTestFrameworkPkgTokenSpaceGuid = { 0x833d3aba, 0x39b4, 0x43a2, { 0xb9, 0x30, 0x7a, 0x34, 0x53, 0x39, 0x31, 0xb3 } }
 
-- 
2.37.1.windows.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [edk2-devel] [Patch 1/1] UnitTestFrameworkPkg: Library classes private to public
  2022-11-30 21:19 [Patch 1/1] UnitTestFrameworkPkg: Library classes private to public Michael D Kinney
@ 2022-11-30 23:02 ` Michael Kubacki
  2022-12-01  2:17 ` Ni, Ray
  2022-12-05  7:44 ` Zhiguang Liu
  2 siblings, 0 replies; 7+ messages in thread
From: Michael Kubacki @ 2022-11-30 23:02 UTC (permalink / raw)
  To: devel, michael.d.kinney; +Cc: Sean Brogan, Ray Ni, Zhiguang Liu

Reviewed-by: Michael Kubacki <michael.kubacki@microsoft.com>

On 11/30/2022 4:19 PM, Michael D Kinney wrote:
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4178
> 
> * Change GoogleTestLib class from private to public.
> * Change UnitTestPersistenceLib class from private to public.
> 
> Cc: Michael Kubacki <mikuback@linux.microsoft.com>
> Cc: Sean Brogan <sean.brogan@microsoft.com>
> Cc: Ray Ni <ray.ni@intel.com>
> Cc: Zhiguang Liu <zhiguang.liu@intel.com>
> Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
> ---
>   .../Library/UnitTestPersistenceLib.h                |  0
>   UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec       | 13 +++++++------
>   2 files changed, 7 insertions(+), 6 deletions(-)
>   rename UnitTestFrameworkPkg/{PrivateInclude => Include}/Library/UnitTestPersistenceLib.h (100%)
> 
> diff --git a/UnitTestFrameworkPkg/PrivateInclude/Library/UnitTestPersistenceLib.h b/UnitTestFrameworkPkg/Include/Library/UnitTestPersistenceLib.h
> similarity index 100%
> rename from UnitTestFrameworkPkg/PrivateInclude/Library/UnitTestPersistenceLib.h
> rename to UnitTestFrameworkPkg/Include/Library/UnitTestPersistenceLib.h
> diff --git a/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec b/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
> index ed12f32009d8..14e387d63a0f 100644
> --- a/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
> +++ b/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
> @@ -26,11 +26,16 @@ [Includes.Common.Private]
>     Library/CmockaLib/cmocka/include/cmockery
>     Library/GoogleTestLib/googletest/googletest
>   
> -[LibraryClasses.Common.Private]
> +[LibraryClasses]
>     ## @libraryclass Allows save and restore unit test internal state
>     #
> -  UnitTestPersistenceLib|PrivateInclude/Library/UnitTestPersistenceLib.h
> +  UnitTestPersistenceLib|Include/Library/UnitTestPersistenceLib.h
>   
> +  ## @libraryclass GoogleTest infrastructure
> +  #
> +  GoogleTestLib|Include/Library/GoogleTestLib.h
> +
> +[LibraryClasses.Common.Private]
>     ## @libraryclass Provides a unit test result report
>     #
>     UnitTestResultReportLib|PrivateInclude/Library/UnitTestResultReportLib.h
> @@ -39,10 +44,6 @@ [LibraryClasses.Common.Private]
>     #
>     UnitTestBootLib|PrivateInclude/Library/UnitTestBootLib.h
>   
> -  ## @libraryclass GoogleTest infrastructure
> -  #
> -  GoogleTestLib|Include/Library/GoogleTestLib.h
> -
>   [Guids]
>     gUnitTestFrameworkPkgTokenSpaceGuid = { 0x833d3aba, 0x39b4, 0x43a2, { 0xb9, 0x30, 0x7a, 0x34, 0x53, 0x39, 0x31, 0xb3 } }
>   

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Patch 1/1] UnitTestFrameworkPkg: Library classes private to public
  2022-11-30 21:19 [Patch 1/1] UnitTestFrameworkPkg: Library classes private to public Michael D Kinney
  2022-11-30 23:02 ` [edk2-devel] " Michael Kubacki
@ 2022-12-01  2:17 ` Ni, Ray
  2022-12-05  7:44 ` Zhiguang Liu
  2 siblings, 0 replies; 7+ messages in thread
From: Ni, Ray @ 2022-12-01  2:17 UTC (permalink / raw)
  To: Kinney, Michael D, devel@edk2.groups.io
  Cc: Michael Kubacki, Sean Brogan, Liu, Zhiguang

Reviewed-by: Ray Ni <ray.ni@intel.com>

> -----Original Message-----
> From: Kinney, Michael D <michael.d.kinney@intel.com>
> Sent: Thursday, December 1, 2022 5:20 AM
> To: devel@edk2.groups.io
> Cc: Michael Kubacki <mikuback@linux.microsoft.com>; Sean Brogan
> <sean.brogan@microsoft.com>; Ni, Ray <ray.ni@intel.com>; Liu, Zhiguang
> <zhiguang.liu@intel.com>
> Subject: [Patch 1/1] UnitTestFrameworkPkg: Library classes private to public
> 
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4178
> 
> * Change GoogleTestLib class from private to public.
> * Change UnitTestPersistenceLib class from private to public.
> 
> Cc: Michael Kubacki <mikuback@linux.microsoft.com>
> Cc: Sean Brogan <sean.brogan@microsoft.com>
> Cc: Ray Ni <ray.ni@intel.com>
> Cc: Zhiguang Liu <zhiguang.liu@intel.com>
> Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
> ---
>  .../Library/UnitTestPersistenceLib.h                |  0
>  UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec       | 13 +++++++------
>  2 files changed, 7 insertions(+), 6 deletions(-)
>  rename UnitTestFrameworkPkg/{PrivateInclude =>
> Include}/Library/UnitTestPersistenceLib.h (100%)
> 
> diff --git
> a/UnitTestFrameworkPkg/PrivateInclude/Library/UnitTestPersistenceLib.h
> b/UnitTestFrameworkPkg/Include/Library/UnitTestPersistenceLib.h
> similarity index 100%
> rename from
> UnitTestFrameworkPkg/PrivateInclude/Library/UnitTestPersistenceLib.h
> rename to UnitTestFrameworkPkg/Include/Library/UnitTestPersistenceLib.h
> diff --git a/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
> b/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
> index ed12f32009d8..14e387d63a0f 100644
> --- a/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
> +++ b/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
> @@ -26,11 +26,16 @@ [Includes.Common.Private]
>    Library/CmockaLib/cmocka/include/cmockery
>    Library/GoogleTestLib/googletest/googletest
> 
> -[LibraryClasses.Common.Private]
> +[LibraryClasses]
>    ## @libraryclass Allows save and restore unit test internal state
>    #
> -  UnitTestPersistenceLib|PrivateInclude/Library/UnitTestPersistenceLib.h
> +  UnitTestPersistenceLib|Include/Library/UnitTestPersistenceLib.h
> 
> +  ## @libraryclass GoogleTest infrastructure
> +  #
> +  GoogleTestLib|Include/Library/GoogleTestLib.h
> +
> +[LibraryClasses.Common.Private]
>    ## @libraryclass Provides a unit test result report
>    #
>    UnitTestResultReportLib|PrivateInclude/Library/UnitTestResultReportLib.h
> @@ -39,10 +44,6 @@ [LibraryClasses.Common.Private]
>    #
>    UnitTestBootLib|PrivateInclude/Library/UnitTestBootLib.h
> 
> -  ## @libraryclass GoogleTest infrastructure
> -  #
> -  GoogleTestLib|Include/Library/GoogleTestLib.h
> -
>  [Guids]
>    gUnitTestFrameworkPkgTokenSpaceGuid = { 0x833d3aba, 0x39b4, 0x43a2,
> { 0xb9, 0x30, 0x7a, 0x34, 0x53, 0x39, 0x31, 0xb3 } }
> 
> --
> 2.37.1.windows.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Patch 1/1] UnitTestFrameworkPkg: Library classes private to public
  2022-11-30 21:19 [Patch 1/1] UnitTestFrameworkPkg: Library classes private to public Michael D Kinney
  2022-11-30 23:02 ` [edk2-devel] " Michael Kubacki
  2022-12-01  2:17 ` Ni, Ray
@ 2022-12-05  7:44 ` Zhiguang Liu
  2022-12-05  7:54   ` Zhiguang Liu
  2 siblings, 1 reply; 7+ messages in thread
From: Zhiguang Liu @ 2022-12-05  7:44 UTC (permalink / raw)
  To: Kinney, Michael D, devel@edk2.groups.io
  Cc: Michael Kubacki, Sean Brogan, Ni, Ray

Hi Mike, 
Thanks for the patch. 
One comment is that UnitTestPersistenceLib depends on a struct definition UNIT_TEST_SAVE_HEADER, which is defined in private headers.
Do you think it is ok to also move it into UnitTestPersistenceLib.h?
Or what we really need from the struct in UnitTestPersistenceLib is the SaveStateSize, we can define a new public struct UNIT_TEST_SAVE_HEADER_PUBLIC to only contains the needed fields, like

typedef struct {
  UINT8       Version;
  UINT32      SaveStateSize;                           // Size of the entire serialized buffer.
  UINT8       RawData[]; 
} UNIT_TEST_SAVE_HEADER;

Thanks
Zhiguang

> -----Original Message-----
> From: Kinney, Michael D <michael.d.kinney@intel.com>
> Sent: Thursday, December 1, 2022 5:20 AM
> To: devel@edk2.groups.io
> Cc: Michael Kubacki <mikuback@linux.microsoft.com>; Sean Brogan
> <sean.brogan@microsoft.com>; Ni, Ray <ray.ni@intel.com>; Liu, Zhiguang
> <zhiguang.liu@intel.com>
> Subject: [Patch 1/1] UnitTestFrameworkPkg: Library classes private to public
> 
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4178
> 
> * Change GoogleTestLib class from private to public.
> * Change UnitTestPersistenceLib class from private to public.
> 
> Cc: Michael Kubacki <mikuback@linux.microsoft.com>
> Cc: Sean Brogan <sean.brogan@microsoft.com>
> Cc: Ray Ni <ray.ni@intel.com>
> Cc: Zhiguang Liu <zhiguang.liu@intel.com>
> Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
> ---
>  .../Library/UnitTestPersistenceLib.h                |  0
>  UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec       | 13 +++++++------
>  2 files changed, 7 insertions(+), 6 deletions(-)  rename
> UnitTestFrameworkPkg/{PrivateInclude =>
> Include}/Library/UnitTestPersistenceLib.h (100%)
> 
> diff --git
> a/UnitTestFrameworkPkg/PrivateInclude/Library/UnitTestPersistenceLib.h
> b/UnitTestFrameworkPkg/Include/Library/UnitTestPersistenceLib.h
> similarity index 100%
> rename from
> UnitTestFrameworkPkg/PrivateInclude/Library/UnitTestPersistenceLib.h
> rename to UnitTestFrameworkPkg/Include/Library/UnitTestPersistenceLib.h
> diff --git a/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
> b/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
> index ed12f32009d8..14e387d63a0f 100644
> --- a/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
> +++ b/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
> @@ -26,11 +26,16 @@ [Includes.Common.Private]
>    Library/CmockaLib/cmocka/include/cmockery
>    Library/GoogleTestLib/googletest/googletest
> 
> -[LibraryClasses.Common.Private]
> +[LibraryClasses]
>    ## @libraryclass Allows save and restore unit test internal state
>    #
> -  UnitTestPersistenceLib|PrivateInclude/Library/UnitTestPersistenceLib.h
> +  UnitTestPersistenceLib|Include/Library/UnitTestPersistenceLib.h
> 
> +  ## @libraryclass GoogleTest infrastructure  #
> + GoogleTestLib|Include/Library/GoogleTestLib.h
> +
> +[LibraryClasses.Common.Private]
>    ## @libraryclass Provides a unit test result report
>    #
>    UnitTestResultReportLib|PrivateInclude/Library/UnitTestResultReportLib.h
> @@ -39,10 +44,6 @@ [LibraryClasses.Common.Private]
>    #
>    UnitTestBootLib|PrivateInclude/Library/UnitTestBootLib.h
> 
> -  ## @libraryclass GoogleTest infrastructure
> -  #
> -  GoogleTestLib|Include/Library/GoogleTestLib.h
> -
>  [Guids]
>    gUnitTestFrameworkPkgTokenSpaceGuid = { 0x833d3aba, 0x39b4, 0x43a2,
> { 0xb9, 0x30, 0x7a, 0x34, 0x53, 0x39, 0x31, 0xb3 } }
> 
> --
> 2.37.1.windows.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Patch 1/1] UnitTestFrameworkPkg: Library classes private to public
  2022-12-05  7:44 ` Zhiguang Liu
@ 2022-12-05  7:54   ` Zhiguang Liu
  2022-12-05 18:18     ` Michael D Kinney
  0 siblings, 1 reply; 7+ messages in thread
From: Zhiguang Liu @ 2022-12-05  7:54 UTC (permalink / raw)
  To: Kinney, Michael D, devel@edk2.groups.io
  Cc: Michael Kubacki, Sean Brogan, Ni, Ray

Another suggestion from Ray is to change the API adding a new parameter(size), so we can avoid using the UNIT_TEST_SAVE_HEADER struct.

EFI_STATUS
EFIAPI
SaveUnitTestCache (
  IN UNIT_TEST_FRAMEWORK_HANDLE  FrameworkHandle,
  IN VOID                                                       *SaveData,
  IN UINTN                                                     Size
  );

Thanks
Zhiguang

> -----Original Message-----
> From: Liu, Zhiguang
> Sent: Monday, December 5, 2022 3:44 PM
> To: Kinney, Michael D <michael.d.kinney@intel.com>; devel@edk2.groups.io
> Cc: Michael Kubacki <mikuback@linux.microsoft.com>; Sean Brogan
> <sean.brogan@microsoft.com>; Ni, Ray <ray.ni@intel.com>
> Subject: RE: [Patch 1/1] UnitTestFrameworkPkg: Library classes private to
> public
> 
> Hi Mike,
> Thanks for the patch.
> One comment is that UnitTestPersistenceLib depends on a struct definition
> UNIT_TEST_SAVE_HEADER, which is defined in private headers.
> Do you think it is ok to also move it into UnitTestPersistenceLib.h?
> Or what we really need from the struct in UnitTestPersistenceLib is the
> SaveStateSize, we can define a new public struct
> UNIT_TEST_SAVE_HEADER_PUBLIC to only contains the needed fields, like
> 
> typedef struct {
>   UINT8       Version;
>   UINT32      SaveStateSize;                           // Size of the entire serialized buffer.
>   UINT8       RawData[];
> } UNIT_TEST_SAVE_HEADER;
> 
> Thanks
> Zhiguang
> 
> > -----Original Message-----
> > From: Kinney, Michael D <michael.d.kinney@intel.com>
> > Sent: Thursday, December 1, 2022 5:20 AM
> > To: devel@edk2.groups.io
> > Cc: Michael Kubacki <mikuback@linux.microsoft.com>; Sean Brogan
> > <sean.brogan@microsoft.com>; Ni, Ray <ray.ni@intel.com>; Liu, Zhiguang
> > <zhiguang.liu@intel.com>
> > Subject: [Patch 1/1] UnitTestFrameworkPkg: Library classes private to
> > public
> >
> > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4178
> >
> > * Change GoogleTestLib class from private to public.
> > * Change UnitTestPersistenceLib class from private to public.
> >
> > Cc: Michael Kubacki <mikuback@linux.microsoft.com>
> > Cc: Sean Brogan <sean.brogan@microsoft.com>
> > Cc: Ray Ni <ray.ni@intel.com>
> > Cc: Zhiguang Liu <zhiguang.liu@intel.com>
> > Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
> > ---
> >  .../Library/UnitTestPersistenceLib.h                |  0
> >  UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec       | 13 +++++++------
> >  2 files changed, 7 insertions(+), 6 deletions(-)  rename
> > UnitTestFrameworkPkg/{PrivateInclude =>
> > Include}/Library/UnitTestPersistenceLib.h (100%)
> >
> > diff --git
> > a/UnitTestFrameworkPkg/PrivateInclude/Library/UnitTestPersistenceLib.h
> > b/UnitTestFrameworkPkg/Include/Library/UnitTestPersistenceLib.h
> > similarity index 100%
> > rename from
> > UnitTestFrameworkPkg/PrivateInclude/Library/UnitTestPersistenceLib.h
> > rename to
> > UnitTestFrameworkPkg/Include/Library/UnitTestPersistenceLib.h
> > diff --git a/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
> > b/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
> > index ed12f32009d8..14e387d63a0f 100644
> > --- a/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
> > +++ b/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
> > @@ -26,11 +26,16 @@ [Includes.Common.Private]
> >    Library/CmockaLib/cmocka/include/cmockery
> >    Library/GoogleTestLib/googletest/googletest
> >
> > -[LibraryClasses.Common.Private]
> > +[LibraryClasses]
> >    ## @libraryclass Allows save and restore unit test internal state
> >    #
> > -
> > UnitTestPersistenceLib|PrivateInclude/Library/UnitTestPersistenceLib.h
> > +  UnitTestPersistenceLib|Include/Library/UnitTestPersistenceLib.h
> >
> > +  ## @libraryclass GoogleTest infrastructure  #
> > + GoogleTestLib|Include/Library/GoogleTestLib.h
> > +
> > +[LibraryClasses.Common.Private]
> >    ## @libraryclass Provides a unit test result report
> >    #
> >
> > UnitTestResultReportLib|PrivateInclude/Library/UnitTestResultReportLib
> > .h @@ -39,10 +44,6 @@ [LibraryClasses.Common.Private]
> >    #
> >    UnitTestBootLib|PrivateInclude/Library/UnitTestBootLib.h
> >
> > -  ## @libraryclass GoogleTest infrastructure
> > -  #
> > -  GoogleTestLib|Include/Library/GoogleTestLib.h
> > -
> >  [Guids]
> >    gUnitTestFrameworkPkgTokenSpaceGuid = { 0x833d3aba, 0x39b4, 0x43a2,
> > { 0xb9, 0x30, 0x7a, 0x34, 0x53, 0x39, 0x31, 0xb3 } }
> >
> > --
> > 2.37.1.windows.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Patch 1/1] UnitTestFrameworkPkg: Library classes private to public
  2022-12-05  7:54   ` Zhiguang Liu
@ 2022-12-05 18:18     ` Michael D Kinney
  2022-12-06  1:31       ` Zhiguang Liu
  0 siblings, 1 reply; 7+ messages in thread
From: Michael D Kinney @ 2022-12-05 18:18 UTC (permalink / raw)
  To: Liu, Zhiguang, devel@edk2.groups.io, Kinney, Michael D
  Cc: Michael Kubacki, Sean Brogan, Ni, Ray

Zhiguang,

This would be a non-backwards compatible change to this API.

But since this has been a private API, I think we can easily accommodate a change
like this if we do it right now and make sure the UnitTestFrameworkPkg implementations
are updated in same patch series.

Can you please put together a patch series with this proposed API change for review
and enter a BZ with the request as well.

Thanks,

Mike

> -----Original Message-----
> From: Liu, Zhiguang <zhiguang.liu@intel.com>
> Sent: Sunday, December 4, 2022 11:55 PM
> To: Kinney, Michael D <michael.d.kinney@intel.com>; devel@edk2.groups.io
> Cc: Michael Kubacki <mikuback@linux.microsoft.com>; Sean Brogan <sean.brogan@microsoft.com>; Ni, Ray <ray.ni@intel.com>
> Subject: RE: [Patch 1/1] UnitTestFrameworkPkg: Library classes private to public
> 
> Another suggestion from Ray is to change the API adding a new parameter(size), so we can avoid using the UNIT_TEST_SAVE_HEADER
> struct.
> 
> EFI_STATUS
> EFIAPI
> SaveUnitTestCache (
>   IN UNIT_TEST_FRAMEWORK_HANDLE  FrameworkHandle,
>   IN VOID                                                       *SaveData,
>   IN UINTN                                                     Size
>   );
> 
> Thanks
> Zhiguang
> 
> > -----Original Message-----
> > From: Liu, Zhiguang
> > Sent: Monday, December 5, 2022 3:44 PM
> > To: Kinney, Michael D <michael.d.kinney@intel.com>; devel@edk2.groups.io
> > Cc: Michael Kubacki <mikuback@linux.microsoft.com>; Sean Brogan
> > <sean.brogan@microsoft.com>; Ni, Ray <ray.ni@intel.com>
> > Subject: RE: [Patch 1/1] UnitTestFrameworkPkg: Library classes private to
> > public
> >
> > Hi Mike,
> > Thanks for the patch.
> > One comment is that UnitTestPersistenceLib depends on a struct definition
> > UNIT_TEST_SAVE_HEADER, which is defined in private headers.
> > Do you think it is ok to also move it into UnitTestPersistenceLib.h?
> > Or what we really need from the struct in UnitTestPersistenceLib is the
> > SaveStateSize, we can define a new public struct
> > UNIT_TEST_SAVE_HEADER_PUBLIC to only contains the needed fields, like
> >
> > typedef struct {
> >   UINT8       Version;
> >   UINT32      SaveStateSize;                           // Size of the entire serialized buffer.
> >   UINT8       RawData[];
> > } UNIT_TEST_SAVE_HEADER;
> >
> > Thanks
> > Zhiguang
> >
> > > -----Original Message-----
> > > From: Kinney, Michael D <michael.d.kinney@intel.com>
> > > Sent: Thursday, December 1, 2022 5:20 AM
> > > To: devel@edk2.groups.io
> > > Cc: Michael Kubacki <mikuback@linux.microsoft.com>; Sean Brogan
> > > <sean.brogan@microsoft.com>; Ni, Ray <ray.ni@intel.com>; Liu, Zhiguang
> > > <zhiguang.liu@intel.com>
> > > Subject: [Patch 1/1] UnitTestFrameworkPkg: Library classes private to
> > > public
> > >
> > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4178
> > >
> > > * Change GoogleTestLib class from private to public.
> > > * Change UnitTestPersistenceLib class from private to public.
> > >
> > > Cc: Michael Kubacki <mikuback@linux.microsoft.com>
> > > Cc: Sean Brogan <sean.brogan@microsoft.com>
> > > Cc: Ray Ni <ray.ni@intel.com>
> > > Cc: Zhiguang Liu <zhiguang.liu@intel.com>
> > > Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
> > > ---
> > >  .../Library/UnitTestPersistenceLib.h                |  0
> > >  UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec       | 13 +++++++------
> > >  2 files changed, 7 insertions(+), 6 deletions(-)  rename
> > > UnitTestFrameworkPkg/{PrivateInclude =>
> > > Include}/Library/UnitTestPersistenceLib.h (100%)
> > >
> > > diff --git
> > > a/UnitTestFrameworkPkg/PrivateInclude/Library/UnitTestPersistenceLib.h
> > > b/UnitTestFrameworkPkg/Include/Library/UnitTestPersistenceLib.h
> > > similarity index 100%
> > > rename from
> > > UnitTestFrameworkPkg/PrivateInclude/Library/UnitTestPersistenceLib.h
> > > rename to
> > > UnitTestFrameworkPkg/Include/Library/UnitTestPersistenceLib.h
> > > diff --git a/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
> > > b/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
> > > index ed12f32009d8..14e387d63a0f 100644
> > > --- a/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
> > > +++ b/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
> > > @@ -26,11 +26,16 @@ [Includes.Common.Private]
> > >    Library/CmockaLib/cmocka/include/cmockery
> > >    Library/GoogleTestLib/googletest/googletest
> > >
> > > -[LibraryClasses.Common.Private]
> > > +[LibraryClasses]
> > >    ## @libraryclass Allows save and restore unit test internal state
> > >    #
> > > -
> > > UnitTestPersistenceLib|PrivateInclude/Library/UnitTestPersistenceLib.h
> > > +  UnitTestPersistenceLib|Include/Library/UnitTestPersistenceLib.h
> > >
> > > +  ## @libraryclass GoogleTest infrastructure  #
> > > + GoogleTestLib|Include/Library/GoogleTestLib.h
> > > +
> > > +[LibraryClasses.Common.Private]
> > >    ## @libraryclass Provides a unit test result report
> > >    #
> > >
> > > UnitTestResultReportLib|PrivateInclude/Library/UnitTestResultReportLib
> > > .h @@ -39,10 +44,6 @@ [LibraryClasses.Common.Private]
> > >    #
> > >    UnitTestBootLib|PrivateInclude/Library/UnitTestBootLib.h
> > >
> > > -  ## @libraryclass GoogleTest infrastructure
> > > -  #
> > > -  GoogleTestLib|Include/Library/GoogleTestLib.h
> > > -
> > >  [Guids]
> > >    gUnitTestFrameworkPkgTokenSpaceGuid = { 0x833d3aba, 0x39b4, 0x43a2,
> > > { 0xb9, 0x30, 0x7a, 0x34, 0x53, 0x39, 0x31, 0xb3 } }
> > >
> > > --
> > > 2.37.1.windows.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Patch 1/1] UnitTestFrameworkPkg: Library classes private to public
  2022-12-05 18:18     ` Michael D Kinney
@ 2022-12-06  1:31       ` Zhiguang Liu
  0 siblings, 0 replies; 7+ messages in thread
From: Zhiguang Liu @ 2022-12-06  1:31 UTC (permalink / raw)
  To: Kinney, Michael D, devel@edk2.groups.io
  Cc: Michael Kubacki, Sean Brogan, Ni, Ray

Hi Mike,
Yes, I will file a BZ and work out a patch serial, including current patch.

Thanks
Zhiguang


> -----Original Message-----
> From: Kinney, Michael D <michael.d.kinney@intel.com>
> Sent: Tuesday, December 6, 2022 2:18 AM
> To: Liu, Zhiguang <zhiguang.liu@intel.com>; devel@edk2.groups.io; Kinney,
> Michael D <michael.d.kinney@intel.com>
> Cc: Michael Kubacki <mikuback@linux.microsoft.com>; Sean Brogan
> <sean.brogan@microsoft.com>; Ni, Ray <ray.ni@intel.com>
> Subject: RE: [Patch 1/1] UnitTestFrameworkPkg: Library classes private to
> public
> 
> Zhiguang,
> 
> This would be a non-backwards compatible change to this API.
> 
> But since this has been a private API, I think we can easily accommodate a
> change like this if we do it right now and make sure the
> UnitTestFrameworkPkg implementations are updated in same patch series.
> 
> Can you please put together a patch series with this proposed API change for
> review and enter a BZ with the request as well.
> 
> Thanks,
> 
> Mike
> 
> > -----Original Message-----
> > From: Liu, Zhiguang <zhiguang.liu@intel.com>
> > Sent: Sunday, December 4, 2022 11:55 PM
> > To: Kinney, Michael D <michael.d.kinney@intel.com>;
> > devel@edk2.groups.io
> > Cc: Michael Kubacki <mikuback@linux.microsoft.com>; Sean Brogan
> > <sean.brogan@microsoft.com>; Ni, Ray <ray.ni@intel.com>
> > Subject: RE: [Patch 1/1] UnitTestFrameworkPkg: Library classes private
> > to public
> >
> > Another suggestion from Ray is to change the API adding a new
> > parameter(size), so we can avoid using the UNIT_TEST_SAVE_HEADER
> struct.
> >
> > EFI_STATUS
> > EFIAPI
> > SaveUnitTestCache (
> >   IN UNIT_TEST_FRAMEWORK_HANDLE  FrameworkHandle,
> >   IN VOID                                                       *SaveData,
> >   IN UINTN                                                     Size
> >   );
> >
> > Thanks
> > Zhiguang
> >
> > > -----Original Message-----
> > > From: Liu, Zhiguang
> > > Sent: Monday, December 5, 2022 3:44 PM
> > > To: Kinney, Michael D <michael.d.kinney@intel.com>;
> > > devel@edk2.groups.io
> > > Cc: Michael Kubacki <mikuback@linux.microsoft.com>; Sean Brogan
> > > <sean.brogan@microsoft.com>; Ni, Ray <ray.ni@intel.com>
> > > Subject: RE: [Patch 1/1] UnitTestFrameworkPkg: Library classes
> > > private to public
> > >
> > > Hi Mike,
> > > Thanks for the patch.
> > > One comment is that UnitTestPersistenceLib depends on a struct
> > > definition UNIT_TEST_SAVE_HEADER, which is defined in private headers.
> > > Do you think it is ok to also move it into UnitTestPersistenceLib.h?
> > > Or what we really need from the struct in UnitTestPersistenceLib is
> > > the SaveStateSize, we can define a new public struct
> > > UNIT_TEST_SAVE_HEADER_PUBLIC to only contains the needed fields,
> > > like
> > >
> > > typedef struct {
> > >   UINT8       Version;
> > >   UINT32      SaveStateSize;                           // Size of the entire serialized
> buffer.
> > >   UINT8       RawData[];
> > > } UNIT_TEST_SAVE_HEADER;
> > >
> > > Thanks
> > > Zhiguang
> > >
> > > > -----Original Message-----
> > > > From: Kinney, Michael D <michael.d.kinney@intel.com>
> > > > Sent: Thursday, December 1, 2022 5:20 AM
> > > > To: devel@edk2.groups.io
> > > > Cc: Michael Kubacki <mikuback@linux.microsoft.com>; Sean Brogan
> > > > <sean.brogan@microsoft.com>; Ni, Ray <ray.ni@intel.com>; Liu,
> > > > Zhiguang <zhiguang.liu@intel.com>
> > > > Subject: [Patch 1/1] UnitTestFrameworkPkg: Library classes private
> > > > to public
> > > >
> > > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4178
> > > >
> > > > * Change GoogleTestLib class from private to public.
> > > > * Change UnitTestPersistenceLib class from private to public.
> > > >
> > > > Cc: Michael Kubacki <mikuback@linux.microsoft.com>
> > > > Cc: Sean Brogan <sean.brogan@microsoft.com>
> > > > Cc: Ray Ni <ray.ni@intel.com>
> > > > Cc: Zhiguang Liu <zhiguang.liu@intel.com>
> > > > Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
> > > > ---
> > > >  .../Library/UnitTestPersistenceLib.h                |  0
> > > >  UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec       | 13 +++++++--
> ----
> > > >  2 files changed, 7 insertions(+), 6 deletions(-)  rename
> > > > UnitTestFrameworkPkg/{PrivateInclude =>
> > > > Include}/Library/UnitTestPersistenceLib.h (100%)
> > > >
> > > > diff --git
> > > > a/UnitTestFrameworkPkg/PrivateInclude/Library/UnitTestPersistenceL
> > > > ib.h
> > > > b/UnitTestFrameworkPkg/Include/Library/UnitTestPersistenceLib.h
> > > > similarity index 100%
> > > > rename from
> > > > UnitTestFrameworkPkg/PrivateInclude/Library/UnitTestPersistenceLib
> > > > .h
> > > > rename to
> > > > UnitTestFrameworkPkg/Include/Library/UnitTestPersistenceLib.h
> > > > diff --git a/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
> > > > b/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
> > > > index ed12f32009d8..14e387d63a0f 100644
> > > > --- a/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
> > > > +++ b/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
> > > > @@ -26,11 +26,16 @@ [Includes.Common.Private]
> > > >    Library/CmockaLib/cmocka/include/cmockery
> > > >    Library/GoogleTestLib/googletest/googletest
> > > >
> > > > -[LibraryClasses.Common.Private]
> > > > +[LibraryClasses]
> > > >    ## @libraryclass Allows save and restore unit test internal state
> > > >    #
> > > > -
> > > > UnitTestPersistenceLib|PrivateInclude/Library/UnitTestPersistenceL
> > > > UnitTestPersistenceLib|ib.h
> > > > +  UnitTestPersistenceLib|Include/Library/UnitTestPersistenceLib.h
> > > >
> > > > +  ## @libraryclass GoogleTest infrastructure  #
> > > > + GoogleTestLib|Include/Library/GoogleTestLib.h
> > > > +
> > > > +[LibraryClasses.Common.Private]
> > > >    ## @libraryclass Provides a unit test result report
> > > >    #
> > > >
> > > > UnitTestResultReportLib|PrivateInclude/Library/UnitTestResultRepor
> > > > UnitTestResultReportLib|tLib
> > > > .h @@ -39,10 +44,6 @@ [LibraryClasses.Common.Private]
> > > >    #
> > > >    UnitTestBootLib|PrivateInclude/Library/UnitTestBootLib.h
> > > >
> > > > -  ## @libraryclass GoogleTest infrastructure
> > > > -  #
> > > > -  GoogleTestLib|Include/Library/GoogleTestLib.h
> > > > -
> > > >  [Guids]
> > > >    gUnitTestFrameworkPkgTokenSpaceGuid = { 0x833d3aba, 0x39b4,
> > > > 0x43a2, { 0xb9, 0x30, 0x7a, 0x34, 0x53, 0x39, 0x31, 0xb3 } }
> > > >
> > > > --
> > > > 2.37.1.windows.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2022-12-06  1:31 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-30 21:19 [Patch 1/1] UnitTestFrameworkPkg: Library classes private to public Michael D Kinney
2022-11-30 23:02 ` [edk2-devel] " Michael Kubacki
2022-12-01  2:17 ` Ni, Ray
2022-12-05  7:44 ` Zhiguang Liu
2022-12-05  7:54   ` Zhiguang Liu
2022-12-05 18:18     ` Michael D Kinney
2022-12-06  1:31       ` Zhiguang Liu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox