我将mORMot文件夹添加到Delphi的库中,并通过在Folder SQLite3中运行TestSQL3来测试它是否正常工作。它在UTF8 上显示错误
!-UTF8:140000/109992失败1.15s
我该如何解决这个问题?请帮忙!!提前谢谢。
Synapse mORMot框架自动测试
- Synapse库
1.1.低水平常见:
- 系统复制记录:162个断言通过108us
- TRawUTF8列表:190172个断言通过61.62ms
- TDynArray:1092815个断言通过137.96ms
- TDynArrayHashed:1599067个断言通过了1.09
- TSynDictionary:139850个断言通过324.01ms
- TSynQueue:6541501个断言通过215.78ms
- TObjectListHashed:2996100个断言通过了1.49
- TObjectListSorted:79912个断言通过51.59ms
- TSynNameValue:40032个断言通过5.54ms
- TRawUTF8实习:2000013个断言通过122.39ms500000在40.91ms内,即12219262/s,平均8KB。0 us,186.4 MB/s500000直接7.6 MB,12.76ms,即39175742/s,平均值。0us,597.7 MB/s
- TObjectDynArrayWrapper:167501个断言通过13.25ms
- TObjArray:3230个断言通过1.72ms
- 自定义RTL:77552个断言通过130.56ms、12.7 GB/s的FillChar移动速度4.51ms,3.4 GB/s小型移动5.86ms,3.7 GB/s在106.81ms、3.6 GB/s中实现大移动FillCharFast[],33.54ms,11.5 GB/s以3.61ms、4.3 GB/s的速度快速移动[]小型MoveFast[],5.76ms,3.8 GB/sbig MoveFast[],105.27ms,3.7 GB/s
- 快速字符串比较:71个断言通过268us
- IdemPropName:216个断言通过207us
- Url编码:152个断言通过1.08ms
- GUID:10007个断言通过2.75ms
- ParseCommandArguments:232个断言通过370us
- IsMatch:4250个断言通过2.27ms
- TExprParserMatch:140个断言通过663us
- Soundex:35个断言通过518us
- 数字转换:2545159个断言通过351.35ms16.49ms内100000 FloatToText,即6062443/s,平均值。0 us,109.9 MB/s23.31ms内100000 str,即4290004/s,平均值。0 us,94 MB/s18.31ms内100000 DoubleToShort,即5460899/s,平均值。0us,99 MB/s
- 整数:33860个断言通过48.08ms
- crc32c:290087个断言通过80.93mspas 286.7 MB/s快速2.4 GB/s sse42 4.1 GB/s
- Random32:201002断言通过25.81ms
- Bloom过滤器:2010072个断言通过128.92ms
- DeltaCompress:87个断言通过6.38ms
- Curr 64:20056断言通过183毫秒
- CamelCase:11个断言通过116us
- 位:22985个断言通过14.47ms
- Ini文件:7028个断言通过188.97ms!-UTF8:140000/109992失败1.15s
- Url解码:1101个断言通过561us
- Baudot代码:10007个断言通过21.87ms
- Iso8601日期和时间:200831个断言通过16.80ms
- 时区:408个断言通过212.13ms
- Mime类型:30个断言通过651us
- 快速选择:4015个断言通过124.33ms
- TSynTable:875个断言通过2.34ms
- TSynCache:404断言传递404us
- TSynFilter:1005个断言通过2.57ms
- TSynValidate:677个断言通过774us
- TSynLogFile:49个断言通过977us
- TSynUniqueIdentifier:1300002个断言通过515.62ms总计失败:14000/22692553-低级通用失败7.45s
Windows 10 64位(10.0.18362)(cp874)8 x Intel(R)Core(TM)i5-9300H CPU@2.40GHz(x86)使用mORMot 1.18.6102TSQLite3LibraryStatic3.32.3与内部MM生成:Delphi10.3Rio 32位编译器
所有测试所用时间:2m29执行时间:2020-08-06 23:58:11LENOVO在LAPTOP-BED954TL 上
所有测试服的断言失败总数:14000/45919717!某些测试失败:请更正代码。
完成-按ENTER键退出
回归测试有一个限制。
正如您的输出状态:
Windows 10 64bit (10.0.18362) (cp874)
您使用的系统代码页为874。
在一些测试中,一些UTF-8到WinAnsi(也称为代码页1252)是通过AnsiString
类型执行的,并且一些字符可能在您自己的代码页中丢失。
因此,报告了一些测试失败。
由于当前测试的某些限制,这是一个假阳性错误。我将来会尽量避免这样的问题。
如果您可以编译TestSQL3
,那么您的安装很可能是正确的,并且它将按预期与内部UTF-8内容一起工作(mORMot在内部与UTF-8 JSON一起工作以避免不必要的转换),并且通过UTF8ToString/StringToUTF8()
函数可以安全地使用常规的VCLstring
类型,即UTF-16。