<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Tianocore/edk2.git/UnitTestFrameworkPkg/Library, branch master</title>
<subtitle>EDK II (mirror)</subtitle>
<id>https://git.radix-linux.su/Tianocore/edk2.git/atom?h=master</id>
<link rel='self' href='https://git.radix-linux.su/Tianocore/edk2.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/'/>
<updated>2026-09-18T19:59:03+00:00</updated>
<entry>
<title>UnitTestFrameworkPkg/TimerLibPosix: Enable 64-bit time_t for IA32 builds</title>
<updated>2026-09-18T19:59:03+00:00</updated>
<author>
<name>Michael D Kinney</name>
<email>michael.d.kinney@intel.com</email>
</author>
<published>2026-09-12T22:04:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=6abc1c06585ffd66d23a74811a930d8d0f88cef7'/>
<id>urn:sha1:6abc1c06585ffd66d23a74811a930d8d0f88cef7</id>
<content type='text'>
On 32-bit architectures (IA32), standard C library headers may default
to 32-bit time_t and file offsets.

Define _FILE_OFFSET_BITS=64 and _TIME_BITS=64 under [BuildOptions]
for IA32 builds in TimerLibPosix.inf to use 64-bit time_t and struct
timespec.

Signed-off-by: Michael D Kinney &lt;michael.d.kinney@intel.com&gt;
</content>
</entry>
<entry>
<title>UnitTestFrameworkPkg: TimerLibPosix: Add TimerLib for host-based unit test</title>
<updated>2026-09-06T10:12:38+00:00</updated>
<author>
<name>Kun Qin</name>
<email>kuqin@microsoft.com</email>
</author>
<published>2026-07-27T19:06:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=00987c101584c0eaa1a051b8c8acaf59bdd8c4cd'/>
<id>urn:sha1:00987c101584c0eaa1a051b8c8acaf59bdd8c4cd</id>
<content type='text'>
This change introduces an instance of TimerLib based on the host's
standard C library to provide a free running performance counter and
calibrated delays for host-based unit tests.

This change paves way to support other host based tests that depends on
the availability of this interface.

Signed-off-by: Kun Qin &lt;kun.qin@microsoft.com&gt;
</content>
</entry>
<entry>
<title>UnitTestFrameworkPkg: FunctionMockLib: Do not support AArch64</title>
<updated>2026-07-31T15:16:47+00:00</updated>
<author>
<name>Kun Qin</name>
<email>kuqin@microsoft.com</email>
</author>
<published>2026-03-31T17:50:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=56e1e042025707c48715186e50efba4d6b7613b9'/>
<id>urn:sha1:56e1e042025707c48715186e50efba4d6b7613b9</id>
<content type='text'>
Current FunctionMockLib is relying on the subhoob module to support the
backend operation by bitbanging the binary post-disassembly.

However subhook module is a x64 centric module and does not support
AArch64 usage.

This change removes the mock function support for AArch64. The
functionality will need other solutions to be properly supported.

Signed-off-by: Kun Qin &lt;kun.qin@microsoft.com&gt;
</content>
</entry>
<entry>
<title>UnitTestFrameworkPkg: UnitTestDebugAssertLib: GCC support for AArch64</title>
<updated>2026-07-31T15:16:47+00:00</updated>
<author>
<name>Kun Qin</name>
<email>kuqin@microsoft.com</email>
</author>
<published>2026-01-20T21:43:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=26800658dfd24cedde5eacf33a3997087cd5928c'/>
<id>urn:sha1:26800658dfd24cedde5eacf33a3997087cd5928c</id>
<content type='text'>
This change adds the GCC compiler flag for AArch64 targets.

Signed-off-by: Kun Qin &lt;kun.qin@microsoft.com&gt;
</content>
</entry>
<entry>
<title>UnitTestFrameworkPkg: CmockaLib: Support float operations</title>
<updated>2026-07-31T15:16:47+00:00</updated>
<author>
<name>Kun Qin</name>
<email>kuqin@microsoft.com</email>
</author>
<published>2026-01-27T20:34:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=476c89e564c89ecd0da9b2a41c612e7377ce6660'/>
<id>urn:sha1:476c89e564c89ecd0da9b2a41c612e7377ce6660</id>
<content type='text'>
This change adds the support of float operations for AArch64 host based
unit tests by overriding the compiler flags.

Signed-off-by: Kun Qin &lt;kun.qin@microsoft.com&gt;
</content>
</entry>
<entry>
<title>UnitTestFrameworkPkg: Increment handle key outside if block</title>
<updated>2026-03-09T09:19:06+00:00</updated>
<author>
<name>Khalid Ali</name>
<email>khaliidcaliy@gmail.com</email>
</author>
<published>2026-03-06T19:45:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=2691afa26994e62d05d356bbaa99343125cbea46'/>
<id>urn:sha1:2691afa26994e62d05d356bbaa99343125cbea46</id>
<content type='text'>
Fixes: #11113

Currently, the global handle key and key inside handle structure is
incremented only when a new handle is allocated for protocol interface
to be installed.

However, when caller already supplies a handle gHandleDatabaseKey never
get incremented.

Move handle key incremental outside if block, just below the else
statement which allows gHandleDatabaseKey to always incremented whether
handle is supplied or not.

Signed-off-by: Khalid Ali &lt;khaliidcaliy@gmail.com&gt;
</content>
</entry>
<entry>
<title>UnitTestFrameworkPkg: Replace include guards with #pragma once</title>
<updated>2026-02-23T21:01:28+00:00</updated>
<author>
<name>Michael Kubacki</name>
<email>michael.kubacki@microsoft.com</email>
</author>
<published>2026-02-03T19:35:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=59f58197ddec8213b442732391e09cd37126bd8c'/>
<id>urn:sha1:59f58197ddec8213b442732391e09cd37126bd8c</id>
<content type='text'>
Replace traditional `#ifndef`/`#define`/`#endif` include guards
with `#pragma` once.

`#pragma once` is a widely supported preprocessor directive that
prevents header files from being included multiple times. It is
supported by all toolchains used to build edk2: GCC, Clang/LLVM, and
MSVC.

Compared to macro-based include guards, `#pragma once`:

- Eliminates the risk of macro name collisions or copy/paste errors
  where two headers inadvertently use the same guard macro.
- Eliminate inconsistency in the way include guard macros are named
  (e.g., some files use `__FILE_H__`, others use `FILE_H_`, etc.).
- Reduces boilerplate (three lines replaced by one).
- Avoids polluting the macro namespace with guard symbols.
- Can improve build times as the preprocessor can skip re-opening the
  file entirely, rather than re-reading it to find the matching
  `#endif` ("multiple-include optimization").
  - Note that some compilers may already optimize traditional include
    guards, by recognzining the idiomatic pattern.

This change is made acknowledging that overall portability of the
code will technically be reduced, as `#pragma once` is not part of the
C/C++ standards.

However, this is considered acceptable given:

1. edk2 already defines a subset of supported compilers in
   BaseTools/Conf/tools_def.template, all of which have supported
   `#pragma once` for over two decades.
2. There have been concerns raised to the project about inconsistent
   include guard naming and potential macro collisions.

Approximate compiler support dates:

- MSVC: Supported since Visual C++ 4.2 (1996)
- GCC: Supported since 3.4 (2004)
  (http://gnu.ist.utl.pt/software/gcc/gcc-3.4/changes.html)
- Clang (LLVM based): Since initial release in 2007

Signed-off-by: Michael Kubacki &lt;michael.kubacki@microsoft.com&gt;
</content>
</entry>
<entry>
<title>UnitTestFrameworkPkg/UnitTestDebugAssertLibHost: Fix clang error</title>
<updated>2025-12-23T01:10:46+00:00</updated>
<author>
<name>Michael D Kinney</name>
<email>michael.d.kinney@intel.com</email>
</author>
<published>2025-12-22T19:38:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=d29ff296fb7a07d7b7f200684078cb6d69ae2bf9'/>
<id>urn:sha1:d29ff296fb7a07d7b7f200684078cb6d69ae2bf9</id>
<content type='text'>
Fix error reported by clang in UnitTestDebugAssertLibHost
that the function snprintf() is undefined. Add include of
&lt;stdio.h&gt; to resolve error.

Signed-off-by: Michael D Kinney &lt;michael.d.kinney@intel.com&gt;
</content>
</entry>
<entry>
<title>UnitTestFrameworkPkg/UnitTestLib: Fix printf() error from clang</title>
<updated>2025-12-23T01:10:46+00:00</updated>
<author>
<name>Michael D Kinney</name>
<email>michael.d.kinney@intel.com</email>
</author>
<published>2025-12-22T19:35:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=8c8aea0e0aa728d8f891deae8645c6031a16d97d'/>
<id>urn:sha1:8c8aea0e0aa728d8f891deae8645c6031a16d97d</id>
<content type='text'>
Update UnitTestLib to not pass UnitTest-&gt;Log as the format
string to printf(). If UnitTest-&gt;Log contains any printf()
format specifiers, then printf() will look for arguments that
are not present and will read beyond the stack frame.

Change use of printf() to an fwrite() to stdout followed by
an fflush() to stdout.

Signed-off-by: Michael D Kinney &lt;michael.d.kinney@intel.com&gt;
</content>
</entry>
<entry>
<title>UnitTestFrameworkPkg/UnitTestDebugAddressLib: Remove extra options</title>
<updated>2025-09-28T23:38:21+00:00</updated>
<author>
<name>Michael D Kinney</name>
<email>michael.d.kinney@intel.com</email>
</author>
<published>2025-09-19T20:48:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=55a5ec63fe20152c237039c54e2957720828cf10'/>
<id>urn:sha1:55a5ec63fe20152c237039c54e2957720828cf10</id>
<content type='text'>
Remove /EHsc from CC_FLAGS. /EHs is added to CC_FLAGS in
UnitTestFrameworkPkgHost.dsc.inc for all components.

Signed-off-by: Michael D Kinney &lt;michael.d.kinney@intel.com&gt;
</content>
</entry>
</feed>
