On 10/11/2024 9:47 AM, Rebecca Cran wrote:
I don't know, but I saw a message from Mike recently saying that someone should use 'static' instead of 'STATIC' - so we need to make a clear decision one way or the other.
The problem here is for GoogleTest. In CMocka, if you want to unit test a static function, regardless of STATIC vs static, you can include the C file under test in the CMocka test file. Not necessarily the most elegant solution, but it works. In GoogleTest, you often cannot directly include the C file in the GoogleTest file, because C++ complains about many Cisms, mostly our use of casting. And I definitely don't think we should update the entire codebase to support compiling under C++ :). Mike, Sean, and I had a discussion on a Project Mu PR where I undef'd STATIC while building GoogleTest modules so that static functions could be unit tested there, too. Also not the most elegant of solutions. If we switch to "static", we lose the ability to unit test static functions under GoogleTest in many cases. I don't know if GoogleTest has some other solution for this, but I don't think so. It may be we say, yep, that's the limitation of GoogleTest, add it to the UnitTestFrameworkPkg README, if you need to unit test a static function, do it in CMocka. But that seems lame, also. I do believe that unit testing static functions is critical. We should be doing interface level testing, as well, where static functions are hidden from us, but there is great value in ensuring each piece of your code is working as intended from the inside. Mike, do you have further thoughts here? Thanks, Oliver -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#120620): https://edk2.groups.io/g/devel/message/120620 Mute This Topic: https://groups.io/mt/108941574/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-