Skip to content

Opt, 使用缓存提升构建速度 #308

Opt, 使用缓存提升构建速度

Opt, 使用缓存提升构建速度 #308

GitHub Actions / 单元测试报告 succeeded Sep 9, 2024 in 0s

339 passed, 0 failed and 0 skipped

Tests passed successfully

Report Passed Failed Skipped Time
TestResults/UnitTestWin32.trx 172✅ 122s
TestResults/UnitTestWin64.trx 167✅ 98s

✅ TestResults/UnitTestWin32.trx

172 tests were completed in 122s with 172 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
api_ms_win_core_fibers.FlsGet_SetValue 4✅ 342ms
api_ms_win_core_handle.CompareObjectHandles 2✅ 523ms
api_ms_win_core_kernel32_legacy.PowerRequest 1✅ 2ms
api_ms_win_core_localization.FindNLSStringEx 4✅ 1ms
api_ms_win_core_localization.GetThreadPreferredUILanguages 4✅ 1ms
api_ms_win_core_localization.LocaleNameToLCID 2✅ 6ms
api_ms_win_core_localization.ResolveLocaleName 6✅ 1ms
api_ms_win_core_path.PathCchAddBackslashEx 2✅ 0ms
api_ms_win_core_path.PathCchAddExtension 5✅ 1ms
api_ms_win_core_path.PathCchAppendEx 2✅ 0ms
api_ms_win_core_path.PathCchCanonicalizeEx 3✅ 0ms
api_ms_win_core_path.PathCchCombineEx 3✅ 0ms
api_ms_win_core_path.PathCchFindExtension 3✅ 0ms
api_ms_win_core_path.PathCchIsRoot 5✅ 0ms
api_ms_win_core_path.PathCchRemoveBackslashEx 3✅ 2ms
api_ms_win_core_path.PathCchRemoveExtension 1✅ 0ms
api_ms_win_core_path.PathCchRemoveFileSpec 4✅ 1ms
api_ms_win_core_path.PathCchRenameExtension 3✅ 0ms
api_ms_win_core_path.PathCchSkipRoot 4✅ 1ms
api_ms_win_core_path.PathCchStripPrefix 2✅ 0ms
api_ms_win_core_path.PathCchStripToRoot 4✅ 1ms
api_ms_win_core_path.PathIsUNCEx 4✅ 0ms
api_ms_win_core_synch.TryAcquireSRWLockExclusive 3✅ 511ms
api_ms_win_core_synch.WaitOnAddress 2✅ 495ms
api_ms_win_core_synch.WakeByAddressAll 1✅ 256ms
api_ms_win_core_synch.WakeByAddressSingle 1✅ 461ms
api_ms_win_core_threadpool.CancelThreadpoolIo 2✅ 401ms
api_ms_win_core_threadpool.FreeLibraryWhenCallbackReturns 2✅ 227ms
api_ms_win_core_threadpool.LeaveCriticalSectionWhenCallbackReturns 2✅ 229ms
api_ms_win_core_threadpool.ReleaseMutexWhenCallbackReturns 2✅ 220ms
api_ms_win_core_threadpool.ReleaseSemaphoreWhenCallbackReturns 2✅ 11ms
api_ms_win_core_threadpool.SetEventWhenCallbackReturns 2✅ 4ms
api_ms_win_core_threadpool.SetThreadpoolThreadMaximum 1✅ 536ms
api_ms_win_core_threadpool.SetThreadpoolTimer 6✅ 11s
api_ms_win_core_threadpool.SetThreadpoolWait 4✅ 16s
api_ms_win_core_threadpool.StartThreadpoolIo 3✅ 199ms
api_ms_win_core_threadpool.SubmitThreadpoolWork 1✅ 2s
api_ms_win_core_threadpool.TrySubmitThreadpoolCallback 1✅ 2s
api_ms_win_core_threadpool.WaitForThreadpoolIoCallbacks 2✅ 603ms
api_ms_win_core_threadpool.WaitForThreadpoolTimerCallbacks 1✅ 818ms
api_ms_win_core_threadpool.WaitForThreadpoolWaitCallbacks 1✅ 5s
api_ms_win_core_threadpool.WaitForThreadpoolWorkCallbacks 1✅ 2s
api_ms_win_core_winrt_string.WindowsCompareStringOrdinal 2✅ 1ms
api_ms_win_core_winrt_string.WindowsCreateString 4✅ 0ms
api_ms_win_core_winrt_string.WindowsDuplicateString 1✅ 0ms
api_ms_win_core_winrt_string.WindowsStringHasEmbeddedNull 3✅ 0ms
api_ms_win_power_base.PowerRegisterSuspendResumeNotification 1✅ 503ms
bcrypt.BCryptDecrypt 1✅ 1ms
bcrypt.BCryptDeriveKey 2✅ 0ms
bcrypt.BCryptEncrypt 6✅ 9ms
bcrypt.BCryptExportKey 1✅ 1ms
bcrypt.BCryptGenRandom 2✅ 0ms
bcrypt.BCryptGetProperty 3✅ 3ms
bcrypt.BCryptHash 4✅ 7ms
bcrypt.BCryptImportKey 1✅ 1ms
bcrypt.BCryptSetProperty 1✅ 1ms
Crypt32.CryptBinaryToStringW 1✅ 364ms
Iphlpapi.ConvertInterfaceLuidToGuid 1✅ 0ms
Iphlpapi.ConvertInterfaceLuidToName 2✅ 1ms
Iphlpapi.ConvertInterfaceNameToLuid 3✅ 2ms
Iphlpapi.GetIfTable2 1✅ 2ms
Iphlpapi.if_nametoindex与if_indextoname 1✅ 0ms
Others.可链接性检测 3✅ 44s
Others.通用项检测 1✅ 0ms
PropSys.VariantCompare 1✅ 0ms
shell32.SHGetKnownFolderIDList 1✅ 136ms
shell32.SHGetKnownFolderPath 1✅ 21ms
User32.AdjustWindowRectExForDpi 2✅ 24ms
User32.GetSystemMetricsForDpi 1✅ 6ms
User32.SystemParametersInfoForDpi 1✅ 2ms
WinHppt.WinHttpGetProxyForUrlEx 5✅ 495ms
WS2_32.GetAddrInfoEx 2✅ 3ms
WS2_32.GetAddrInfoExCancel 2✅ 175ms

✅ api_ms_win_core_fibers.FlsGet_SetValue

✅ Fls释放销毁回调验证
✅ 单线程验证
✅ 多线程验证
✅ 线程退出销毁回调验证

✅ api_ms_win_core_handle.CompareObjectHandles

✅ 匿名对象
✅ 常规比较

✅ api_ms_win_core_kernel32_legacy.PowerRequest

✅ Set然后Clear

✅ api_ms_win_core_localization.FindNLSStringEx

✅ FIND_ENDSWITH验证
✅ FIND_FROMEND验证
✅ FIND_FROMSTART验证
✅ FIND_STARTSWITH验证

✅ api_ms_win_core_localization.GetThreadPreferredUILanguages

✅ Languages消重验证
✅ MUI_LANGUAGE_ID验证
✅ MUI_LANGUAGE_NAME验证
✅ 无效参数验证

✅ api_ms_win_core_localization.LocaleNameToLCID

✅ LOCALE_ALLOW_NEUTRAL_NAMES验证
✅ 映射表验证

✅ api_ms_win_core_localization.ResolveLocaleName

✅ 中性语言验证
✅ 仅返回长度验证
✅ 特定区域排序语言验证
✅ 特定区域语言验证
✅ 自动回退验证
✅ 默认值验证

✅ api_ms_win_core_path.PathCchAddBackslashEx

✅ 基础功能测试
✅ 空指针测试

✅ api_ms_win_core_path.PathCchAddExtension

✅ 后缀本身是一个空字符串
✅ 后缀格式错误验证
✅ 向已经存在后缀的路径添加
✅ 常规的添加
✅ 当文件名为空时添加

✅ api_ms_win_core_path.PathCchAppendEx

✅ More参数是一个完整路径
✅ 基础功能验证

✅ api_ms_win_core_path.PathCchCanonicalizeEx

✅ 基础功能验证
✅ 末尾多余点删除验证
✅ 根目录向上跳转验证

✅ api_ms_win_core_path.PathCchCombineEx

✅ More参数以斜杠开头
✅ More参数是一个完整路径
✅ 基础功能验证

✅ api_ms_win_core_path.PathCchFindExtension

✅ 不带任何斜杠情况提取
✅ 后缀带空格情况提取
✅ 常规后缀提取

✅ api_ms_win_core_path.PathCchIsRoot

✅ Dos路径测试
✅ UNC路径测试
✅ VolumeGUID路径测试
✅ 特殊值测试
✅ 相对路径测试

✅ api_ms_win_core_path.PathCchRemoveBackslashEx

✅ Dos路径测试
✅ UNC路径测试
✅ VolumeGUID路径测试

✅ api_ms_win_core_path.PathCchRemoveExtension

✅ 基础功能验证

✅ api_ms_win_core_path.PathCchRemoveFileSpec

✅ Dos路径测试
✅ UNC路径测试
✅ VolumeGUID路径测试
✅ 相对路径目录测试

✅ api_ms_win_core_path.PathCchRenameExtension

✅ 删除后缀
✅ 添加后缀
✅ 重命名后缀

✅ api_ms_win_core_path.PathCchSkipRoot

✅ Dos路径
✅ UNC目录测试
✅ VolumeGUID目录测试
✅ 相对路径目录测试

✅ api_ms_win_core_path.PathCchStripPrefix

✅ Dos路径
✅ UNC路径

✅ api_ms_win_core_path.PathCchStripToRoot

✅ Dos路径测试
✅ UNC路径测试
✅ VolumeGUID路径测试
✅ 相对路径测试

✅ api_ms_win_core_path.PathIsUNCEx

✅ Dos路径容错
✅ 传统UNC路径分割
✅ 空指针测试
✅ 长命名UNC路径分割

✅ api_ms_win_core_synch.TryAcquireSRWLockExclusive

✅ 如果其他线程占用,那么应该失败
✅ 锁定后其他线程会等待
✅ 首次肯定成功

✅ api_ms_win_core_synch.WaitOnAddress

✅ 结果本身不同
✅ 结果本身相同

✅ api_ms_win_core_synch.WakeByAddressAll

✅ 唤醒所有线程

✅ api_ms_win_core_synch.WakeByAddressSingle

✅ 只唤醒了一个线程

✅ api_ms_win_core_threadpool.CancelThreadpoolIo

✅ 彻底取消后不会再触发
✅ 没有彻底取消时任然可以收到特定次数

✅ api_ms_win_core_threadpool.FreeLibraryWhenCallbackReturns

✅ 任务测试
✅ 定时器测试

✅ api_ms_win_core_threadpool.LeaveCriticalSectionWhenCallbackReturns

✅ 任务测试
✅ 定时器测试

✅ api_ms_win_core_threadpool.ReleaseMutexWhenCallbackReturns

✅ 任务测试
✅ 定时器测试

✅ api_ms_win_core_threadpool.ReleaseSemaphoreWhenCallbackReturns

✅ 任务测试
✅ 定时器测试

✅ api_ms_win_core_threadpool.SetEventWhenCallbackReturns

✅ 任务测试
✅ 定时器测试

✅ api_ms_win_core_threadpool.SetThreadpoolThreadMaximum

✅ 最大上限测试

✅ api_ms_win_core_threadpool.SetThreadpoolTimer

✅ 一次性定时器
✅ 定时器覆盖
✅ 当DueTime数值为0时
✅ 当DueTime是nullptr
✅ 当DueTime是相对时间
✅ 当DueTime是绝对时间

✅ api_ms_win_core_threadpool.SetThreadpoolWait

✅ 取消等待器
✅ 无限等待
✅ 相对时间等待
✅ 绝对时间等待

✅ api_ms_win_core_threadpool.StartThreadpoolIo

✅ StartThreadpoolIo一次
✅ StartThreadpoolIo二次
✅ 如果不调用StartThreadpoolIo那么Claaback一直不会触发

✅ api_ms_win_core_threadpool.SubmitThreadpoolWork

✅ 一般行为验证

✅ api_ms_win_core_threadpool.TrySubmitThreadpoolCallback

✅ 一般行为验证

✅ api_ms_win_core_threadpool.WaitForThreadpoolIoCallbacks

✅ 任务完成后可以收到信号
✅ 取消任务后回调没有信息

✅ api_ms_win_core_threadpool.WaitForThreadpoolTimerCallbacks

✅ 一般行为验证

✅ api_ms_win_core_threadpool.WaitForThreadpoolWaitCallbacks

✅ 一般行为验证

✅ api_ms_win_core_threadpool.WaitForThreadpoolWorkCallbacks

✅ 一般行为验证

✅ api_ms_win_core_winrt_string.WindowsCompareStringOrdinal

✅ 常规验证
✅ 空值验证

✅ api_ms_win_core_winrt_string.WindowsCreateString

✅ 中途带零的字符串
✅ 中途截断的字符串
✅ 标准C字符串
✅ 结尾多一个零的字符串

✅ api_ms_win_core_winrt_string.WindowsDuplicateString

✅ 标准行为验证

✅ api_ms_win_core_winrt_string.WindowsStringHasEmbeddedNull

✅ 中途带零的字符串
✅ 标准C字符串
✅ 结尾多一个零的字符串

✅ api_ms_win_power_base.PowerRegisterSuspendResumeNotification

✅ 创建然后关闭

✅ bcrypt.BCryptDecrypt

✅ AES解密测试

✅ bcrypt.BCryptDeriveKey

✅ Capi
✅ PBKDF2

✅ bcrypt.BCryptEncrypt

✅ _3DES_112加密测试
✅ _3DES加密测试
✅ AES加密测试
✅ DES加密测试
✅ RC2加密测试
✅ RC4加密测试

✅ bcrypt.BCryptExportKey

✅ AES密钥导出

✅ bcrypt.BCryptGenRandom

✅ BCRYPT_USE_SYSTEM_PREFERRED_RNG模式
✅ BCryptOpen在关闭

✅ bcrypt.BCryptGetProperty

✅ AES加密算法相关属性
✅ Hash
✅ Random

✅ bcrypt.BCryptHash

✅ HMAC_Sha1
✅ MD5
✅ Sha1
✅ Sha256

✅ bcrypt.BCryptImportKey

✅ AES密钥导入

✅ bcrypt.BCryptSetProperty

✅ AES加密算法相关属性

✅ Crypt32.CryptBinaryToStringW

✅ CRYPT_STRING_NOCRLF参数验证

✅ Iphlpapi.ConvertInterfaceLuidToGuid

✅ 交叉验证

✅ Iphlpapi.ConvertInterfaceLuidToName

✅ 畸形输入验证
✅ 输入验证

✅ Iphlpapi.ConvertInterfaceNameToLuid

✅ 大小写验证
✅ 畸形输入写验证
✅ 输入验证

✅ Iphlpapi.GetIfTable2

✅ GetIfTable2简单验证

✅ Iphlpapi.if_nametoindex与if_indextoname

✅ 交叉验证

✅ Others.可链接性检测

✅ lib模式可链接性
✅ obj模式可链接性
✅ SDK6可链接性

✅ Others.通用项检测

✅ 符号Thunks检测

✅ PropSys.VariantCompare

✅ 一般

✅ shell32.SHGetKnownFolderIDList

✅ 基本验证

✅ shell32.SHGetKnownFolderPath

✅ 基本验证

✅ User32.AdjustWindowRectExForDpi

✅ 常规测试
✅ 畸形测试

✅ User32.GetSystemMetricsForDpi

✅ 常规测试

✅ User32.SystemParametersInfoForDpi

✅ 常规测试

✅ WinHppt.WinHttpGetProxyForUrlEx

✅ DIRECT配置
✅ 三条混合配置
✅ 二条HTTP配置
✅ 单条HTTPS配置
✅ 单条HTTP配置

✅ WS2_32.GetAddrInfoEx

✅ Win2003_XPSP3模式
✅ WinXP_RTM模式

✅ WS2_32.GetAddrInfoExCancel

✅ 任务取消测试
✅ 异步不取消

✅ TestResults/UnitTestWin64.trx

167 tests were completed in 98s with 167 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
api_ms_win_core_handle.CompareObjectHandles 2✅ 524ms
api_ms_win_core_kernel32_legacy.PowerRequest 1✅ 3ms
api_ms_win_core_localization.FindNLSStringEx 4✅ 1ms
api_ms_win_core_localization.GetThreadPreferredUILanguages 4✅ 1ms
api_ms_win_core_localization.LocaleNameToLCID 2✅ 13ms
api_ms_win_core_localization.ResolveLocaleName 6✅ 2ms
api_ms_win_core_path.PathCchAddBackslashEx 2✅ 0ms
api_ms_win_core_path.PathCchAddExtension 5✅ 1ms
api_ms_win_core_path.PathCchAppendEx 2✅ 1ms
api_ms_win_core_path.PathCchCanonicalizeEx 3✅ 1ms
api_ms_win_core_path.PathCchCombineEx 3✅ 1ms
api_ms_win_core_path.PathCchFindExtension 3✅ 0ms
api_ms_win_core_path.PathCchIsRoot 5✅ 0ms
api_ms_win_core_path.PathCchRemoveBackslashEx 3✅ 3ms
api_ms_win_core_path.PathCchRemoveExtension 1✅ 0ms
api_ms_win_core_path.PathCchRemoveFileSpec 4✅ 2ms
api_ms_win_core_path.PathCchRenameExtension 3✅ 1ms
api_ms_win_core_path.PathCchSkipRoot 4✅ 2ms
api_ms_win_core_path.PathCchStripPrefix 2✅ 0ms
api_ms_win_core_path.PathCchStripToRoot 4✅ 2ms
api_ms_win_core_path.PathIsUNCEx 4✅ 0ms
api_ms_win_core_synch.TryAcquireSRWLockExclusive 3✅ 508ms
api_ms_win_core_synch.WaitOnAddress 2✅ 492ms
api_ms_win_core_synch.WakeByAddressAll 1✅ 243ms
api_ms_win_core_synch.WakeByAddressSingle 1✅ 459ms
api_ms_win_core_threadpool.CancelThreadpoolIo 2✅ 411ms
api_ms_win_core_threadpool.FreeLibraryWhenCallbackReturns 2✅ 236ms
api_ms_win_core_threadpool.LeaveCriticalSectionWhenCallbackReturns 2✅ 206ms
api_ms_win_core_threadpool.ReleaseMutexWhenCallbackReturns 2✅ 216ms
api_ms_win_core_threadpool.ReleaseSemaphoreWhenCallbackReturns 2✅ 3ms
api_ms_win_core_threadpool.SetEventWhenCallbackReturns 2✅ 8ms
api_ms_win_core_threadpool.SetThreadpoolThreadMaximum 1✅ 540ms
api_ms_win_core_threadpool.SetThreadpoolTimer 6✅ 11s
api_ms_win_core_threadpool.SetThreadpoolWait 4✅ 16s
api_ms_win_core_threadpool.StartThreadpoolIo 3✅ 198ms
api_ms_win_core_threadpool.SubmitThreadpoolWork 1✅ 2s
api_ms_win_core_threadpool.TrySubmitThreadpoolCallback 1✅ 2s
api_ms_win_core_threadpool.WaitForThreadpoolIoCallbacks 2✅ 611ms
api_ms_win_core_threadpool.WaitForThreadpoolTimerCallbacks 1✅ 822ms
api_ms_win_core_threadpool.WaitForThreadpoolWaitCallbacks 1✅ 5s
api_ms_win_core_threadpool.WaitForThreadpoolWorkCallbacks 1✅ 2s
api_ms_win_core_winrt_string.WindowsCompareStringOrdinal 2✅ 1ms
api_ms_win_core_winrt_string.WindowsCreateString 4✅ 0ms
api_ms_win_core_winrt_string.WindowsDuplicateString 1✅ 0ms
api_ms_win_core_winrt_string.WindowsStringHasEmbeddedNull 3✅ 0ms
api_ms_win_power_base.PowerRegisterSuspendResumeNotification 1✅ 503ms
bcrypt.BCryptDecrypt 1✅ 2ms
bcrypt.BCryptDeriveKey 2✅ 0ms
bcrypt.BCryptEncrypt 6✅ 10ms
bcrypt.BCryptExportKey 1✅ 1ms
bcrypt.BCryptGenRandom 2✅ 0ms
bcrypt.BCryptGetProperty 3✅ 4ms
bcrypt.BCryptHash 4✅ 8ms
bcrypt.BCryptImportKey 1✅ 2ms
bcrypt.BCryptSetProperty 1✅ 2ms
Crypt32.CryptBinaryToStringW 1✅ 443ms
Iphlpapi.ConvertInterfaceLuidToGuid 1✅ 0ms
Iphlpapi.ConvertInterfaceLuidToName 2✅ 1ms
Iphlpapi.ConvertInterfaceNameToLuid 3✅ 3ms
Iphlpapi.GetIfTable2 1✅ 2ms
Iphlpapi.if_nametoindex与if_indextoname 1✅ 0ms
Others.可链接性检测 3✅ 38s
Others.通用项检测 1✅ 0ms
PropSys.VariantCompare 1✅ 0ms
shell32.SHGetKnownFolderIDList 1✅ 6ms
shell32.SHGetKnownFolderPath 1✅ 3ms
User32.AdjustWindowRectExForDpi 2✅ 1ms
User32.GetSystemMetricsForDpi 1✅ 9ms
User32.SystemParametersInfoForDpi 1✅ 1ms
WinHppt.WinHttpGetProxyForUrlEx 5✅ 19ms
WS2_32.GetAddrInfoEx 1✅ 1ms
WS2_32.GetAddrInfoExCancel 2✅ 22ms

✅ api_ms_win_core_handle.CompareObjectHandles

✅ 匿名对象
✅ 常规比较

✅ api_ms_win_core_kernel32_legacy.PowerRequest

✅ Set然后Clear

✅ api_ms_win_core_localization.FindNLSStringEx

✅ FIND_ENDSWITH验证
✅ FIND_FROMEND验证
✅ FIND_FROMSTART验证
✅ FIND_STARTSWITH验证

✅ api_ms_win_core_localization.GetThreadPreferredUILanguages

✅ Languages消重验证
✅ MUI_LANGUAGE_ID验证
✅ MUI_LANGUAGE_NAME验证
✅ 无效参数验证

✅ api_ms_win_core_localization.LocaleNameToLCID

✅ LOCALE_ALLOW_NEUTRAL_NAMES验证
✅ 映射表验证

✅ api_ms_win_core_localization.ResolveLocaleName

✅ 中性语言验证
✅ 仅返回长度验证
✅ 特定区域排序语言验证
✅ 特定区域语言验证
✅ 自动回退验证
✅ 默认值验证

✅ api_ms_win_core_path.PathCchAddBackslashEx

✅ 基础功能测试
✅ 空指针测试

✅ api_ms_win_core_path.PathCchAddExtension

✅ 后缀本身是一个空字符串
✅ 后缀格式错误验证
✅ 向已经存在后缀的路径添加
✅ 常规的添加
✅ 当文件名为空时添加

✅ api_ms_win_core_path.PathCchAppendEx

✅ More参数是一个完整路径
✅ 基础功能验证

✅ api_ms_win_core_path.PathCchCanonicalizeEx

✅ 基础功能验证
✅ 末尾多余点删除验证
✅ 根目录向上跳转验证

✅ api_ms_win_core_path.PathCchCombineEx

✅ More参数以斜杠开头
✅ More参数是一个完整路径
✅ 基础功能验证

✅ api_ms_win_core_path.PathCchFindExtension

✅ 不带任何斜杠情况提取
✅ 后缀带空格情况提取
✅ 常规后缀提取

✅ api_ms_win_core_path.PathCchIsRoot

✅ Dos路径测试
✅ UNC路径测试
✅ VolumeGUID路径测试
✅ 特殊值测试
✅ 相对路径测试

✅ api_ms_win_core_path.PathCchRemoveBackslashEx

✅ Dos路径测试
✅ UNC路径测试
✅ VolumeGUID路径测试

✅ api_ms_win_core_path.PathCchRemoveExtension

✅ 基础功能验证

✅ api_ms_win_core_path.PathCchRemoveFileSpec

✅ Dos路径测试
✅ UNC路径测试
✅ VolumeGUID路径测试
✅ 相对路径目录测试

✅ api_ms_win_core_path.PathCchRenameExtension

✅ 删除后缀
✅ 添加后缀
✅ 重命名后缀

✅ api_ms_win_core_path.PathCchSkipRoot

✅ Dos路径
✅ UNC目录测试
✅ VolumeGUID目录测试
✅ 相对路径目录测试

✅ api_ms_win_core_path.PathCchStripPrefix

✅ Dos路径
✅ UNC路径

✅ api_ms_win_core_path.PathCchStripToRoot

✅ Dos路径测试
✅ UNC路径测试
✅ VolumeGUID路径测试
✅ 相对路径测试

✅ api_ms_win_core_path.PathIsUNCEx

✅ Dos路径容错
✅ 传统UNC路径分割
✅ 空指针测试
✅ 长命名UNC路径分割

✅ api_ms_win_core_synch.TryAcquireSRWLockExclusive

✅ 如果其他线程占用,那么应该失败
✅ 锁定后其他线程会等待
✅ 首次肯定成功

✅ api_ms_win_core_synch.WaitOnAddress

✅ 结果本身不同
✅ 结果本身相同

✅ api_ms_win_core_synch.WakeByAddressAll

✅ 唤醒所有线程

✅ api_ms_win_core_synch.WakeByAddressSingle

✅ 只唤醒了一个线程

✅ api_ms_win_core_threadpool.CancelThreadpoolIo

✅ 彻底取消后不会再触发
✅ 没有彻底取消时任然可以收到特定次数

✅ api_ms_win_core_threadpool.FreeLibraryWhenCallbackReturns

✅ 任务测试
✅ 定时器测试

✅ api_ms_win_core_threadpool.LeaveCriticalSectionWhenCallbackReturns

✅ 任务测试
✅ 定时器测试

✅ api_ms_win_core_threadpool.ReleaseMutexWhenCallbackReturns

✅ 任务测试
✅ 定时器测试

✅ api_ms_win_core_threadpool.ReleaseSemaphoreWhenCallbackReturns

✅ 任务测试
✅ 定时器测试

✅ api_ms_win_core_threadpool.SetEventWhenCallbackReturns

✅ 任务测试
✅ 定时器测试

✅ api_ms_win_core_threadpool.SetThreadpoolThreadMaximum

✅ 最大上限测试

✅ api_ms_win_core_threadpool.SetThreadpoolTimer

✅ 一次性定时器
✅ 定时器覆盖
✅ 当DueTime数值为0时
✅ 当DueTime是nullptr
✅ 当DueTime是相对时间
✅ 当DueTime是绝对时间

✅ api_ms_win_core_threadpool.SetThreadpoolWait

✅ 取消等待器
✅ 无限等待
✅ 相对时间等待
✅ 绝对时间等待

✅ api_ms_win_core_threadpool.StartThreadpoolIo

✅ StartThreadpoolIo一次
✅ StartThreadpoolIo二次
✅ 如果不调用StartThreadpoolIo那么Claaback一直不会触发

✅ api_ms_win_core_threadpool.SubmitThreadpoolWork

✅ 一般行为验证

✅ api_ms_win_core_threadpool.TrySubmitThreadpoolCallback

✅ 一般行为验证

✅ api_ms_win_core_threadpool.WaitForThreadpoolIoCallbacks

✅ 任务完成后可以收到信号
✅ 取消任务后回调没有信息

✅ api_ms_win_core_threadpool.WaitForThreadpoolTimerCallbacks

✅ 一般行为验证

✅ api_ms_win_core_threadpool.WaitForThreadpoolWaitCallbacks

✅ 一般行为验证

✅ api_ms_win_core_threadpool.WaitForThreadpoolWorkCallbacks

✅ 一般行为验证

✅ api_ms_win_core_winrt_string.WindowsCompareStringOrdinal

✅ 常规验证
✅ 空值验证

✅ api_ms_win_core_winrt_string.WindowsCreateString

✅ 中途带零的字符串
✅ 中途截断的字符串
✅ 标准C字符串
✅ 结尾多一个零的字符串

✅ api_ms_win_core_winrt_string.WindowsDuplicateString

✅ 标准行为验证

✅ api_ms_win_core_winrt_string.WindowsStringHasEmbeddedNull

✅ 中途带零的字符串
✅ 标准C字符串
✅ 结尾多一个零的字符串

✅ api_ms_win_power_base.PowerRegisterSuspendResumeNotification

✅ 创建然后关闭

✅ bcrypt.BCryptDecrypt

✅ AES解密测试

✅ bcrypt.BCryptDeriveKey

✅ Capi
✅ PBKDF2

✅ bcrypt.BCryptEncrypt

✅ _3DES_112加密测试
✅ _3DES加密测试
✅ AES加密测试
✅ DES加密测试
✅ RC2加密测试
✅ RC4加密测试

✅ bcrypt.BCryptExportKey

✅ AES密钥导出

✅ bcrypt.BCryptGenRandom

✅ BCRYPT_USE_SYSTEM_PREFERRED_RNG模式
✅ BCryptOpen在关闭

✅ bcrypt.BCryptGetProperty

✅ AES加密算法相关属性
✅ Hash
✅ Random

✅ bcrypt.BCryptHash

✅ HMAC_Sha1
✅ MD5
✅ Sha1
✅ Sha256

✅ bcrypt.BCryptImportKey

✅ AES密钥导入

✅ bcrypt.BCryptSetProperty

✅ AES加密算法相关属性

✅ Crypt32.CryptBinaryToStringW

✅ CRYPT_STRING_NOCRLF参数验证

✅ Iphlpapi.ConvertInterfaceLuidToGuid

✅ 交叉验证

✅ Iphlpapi.ConvertInterfaceLuidToName

✅ 畸形输入验证
✅ 输入验证

✅ Iphlpapi.ConvertInterfaceNameToLuid

✅ 大小写验证
✅ 畸形输入写验证
✅ 输入验证

✅ Iphlpapi.GetIfTable2

✅ GetIfTable2简单验证

✅ Iphlpapi.if_nametoindex与if_indextoname

✅ 交叉验证

✅ Others.可链接性检测

✅ lib模式可链接性
✅ obj模式可链接性
✅ SDK6可链接性

✅ Others.通用项检测

✅ 符号Thunks检测

✅ PropSys.VariantCompare

✅ 一般

✅ shell32.SHGetKnownFolderIDList

✅ 基本验证

✅ shell32.SHGetKnownFolderPath

✅ 基本验证

✅ User32.AdjustWindowRectExForDpi

✅ 常规测试
✅ 畸形测试

✅ User32.GetSystemMetricsForDpi

✅ 常规测试

✅ User32.SystemParametersInfoForDpi

✅ 常规测试

✅ WinHppt.WinHttpGetProxyForUrlEx

✅ DIRECT配置
✅ 三条混合配置
✅ 二条HTTP配置
✅ 单条HTTPS配置
✅ 单条HTTP配置

✅ WS2_32.GetAddrInfoEx

✅ Win2003_XPSP3模式

✅ WS2_32.GetAddrInfoExCancel

✅ 任务取消测试
✅ 异步不取消