On 09/25/20 04:38, Bret Barkelew via groups.io wrote:
> ERROR - EFI coding style error
> ERROR - *Error code: 7001
> ERROR - *There should be no use of int, unsigned, char, void, long in any .c, 
> .h or .asl files
> ERROR - *file: 
> //home/corthon/_uefi/edk2_qemu_ci/edk2/MdeModulePkg/Library/VariablePolicyLib/VariablePolicyUnitTest/VariablePolicyUnitTest.c
> ERROR - *Line number: 763
> ERROR - *[main] Return type int
> ERROR -
> ERROR - EFI coding style error
> ERROR - *Error code: 8006
> ERROR - *Function name does not follow the rules: 1. First character should 
> be upper case 2. Must contain lower case characters 3. No white space 
> characters
> ERROR - *file: 
> //home/corthon/_uefi/edk2_qemu_ci/edk2/MdeModulePkg/Library/VariablePolicyLib/VariablePolicyUnitTest/VariablePolicyUnitTest.c
> ERROR - *Line number: 2253
> ERROR - *The function name [main] does not follow the rules
> 
> Currently, the host-based unit tests are using a standard C entry point:
> int
> main ()

"int main()" is not the standard C entry point. Two prototypes for main() are 
standard:

int main(void);
int main(int argc, char *argv[]);

where
- "int" may be replaced with a typedef name that's defined as "int",
- and *argv[] may be spelled as **argv too.


... Of course, this doesn't address your main point.

ECC#7001 can be suppressed perhaps if you use INT32 rather than "int".

ECC#8006 can be suppressed perhaps with a macro that expands to "main".


Another -- likely better -- idea:

(1) replace the current main() function prototype with

    INT32
    UnitTestMain (
      IN INT32 ArgC,
      IN UINT8 **ArgV
      );

(2) Introduce

  MdeModulePkg/Library/VariablePolicyLib/VariablePolicyUnitTest/UnitTestMain.h

such that it only declare the above prototype.

(3) Introduce

  MdeModulePkg/Library/VariablePolicyLib/VariablePolicyUnitTest/UnitTestEntry.c

with the following contents:

  #include "UnitTestMain.h"

  int main(int argc, char **argv)
  {
    return UnitTestMain(argc, (UINT8 **)argv);
  }

(4) List both new source files in

  
MdeModulePkg/Library/VariablePolicyLib/VariablePolicyUnitTest/VariablePolicyUnitTest.inf

in the [Sources] section.

(5) Add

  MdeModulePkg/Library/VariablePolicyLib/VariablePolicyUnitTest/UnitTestEntry.c

to "EccCheck.IgnoreFiles" in "MdeModulePkg/MdeModulePkg.ci.yaml".

Thanks
Laszlo




> 
> That’s going to break both of these.
> 
> Another thing to override/figure out for host-based tests
> 
> - Bret
> 
> 
> 
> 
> 
> 
> 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#65614): https://edk2.groups.io/g/devel/message/65614
Mute This Topic: https://groups.io/mt/77072129/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to