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] -=-=-=-=-=-=-=-=-=-=-=-