Delphi-mORMot:安装出错。 UTF8测试中的自动测试错误!我该如何解决?

时间:2020-08-06 17:49:22

标签: unit-testing delphi mormot

我将mORMot文件夹添加到Delphi的库中,并通过在Folder SQLite3中运行TestSQL3来测试它是否正常运行。它显示了UTF8处的错误

! -UTF8:14,000 / 1,099,792失败1.15秒

我该如何解决?请帮忙!!预先谢谢你。

概要mORMot框架自动化测试


  1. 提要库

1.1。低级常见:

  • 系统副本记录:162个断言通过了108us
  • TRawUTF8List:190,172个断言传递了61.62ms
  • TDynArray:传递了109.96毫秒的1,092,815个断言
  • TDynArrayHashed:1,599,067个断言传递了1.09s
  • TSynDictionary:139,850条断言传递了324.01ms
  • TSynQueue:6,541,501个断言传递了215.78ms
  • TObjectListHashed:传递了1.996s的2,996,100个断言
  • TObjectListSorted:79,912个断言传递了51.59ms
  • TSynNameValue:40,032个断言通过了5.54ms
  • TRawUTF8Interning:2,000,013个断言通过了122.39ms 500000以40.91ms间隔8 KB,即平均12,219,262 / s 0us,186.4 MB /秒 500000直接7.6 MB,12.76毫秒,即平均39,175,742 / s 0us,597.7 MB / s
  • TObjectDynArrayWrapper:167,501个断言传递了13.25ms
  • TObjArray:3,230个断言传递了1.72毫秒
  • 自定义RTL:77,552个断言传递了1秒 30.56毫秒,12.7 GB /秒的FillChar 以4.51ms,3.4 GB / s的速度移动 在5.86毫秒内以3.7 GB /秒的速度小移动 106.81ms的大动作,3.6 GB / s FillCharFast []于33.54ms,11.5 GB / s MoveFast []于3.61ms,4.3 GB / s 小MoveFast [],速度为5.76毫秒,每秒3.8 GB 大MoveFast []于105.27ms,3.7 GB / s
  • 快速字符串比较:71个断言通过268us
  • IdemPropName:216个断言通过了207us
  • URL编码:152个断言传递了1.08ms
  • GUID:10,007个断言通过了2.75ms
  • ParseCommandArguments:370条指令传递了232条断言
  • IsMatch:4,250个断言传递了2.27ms
  • TExprParserMatch:140个断言通过了663us
  • Soundex:35个断言通过了518us
  • 数值转换:通过351.35毫秒的2,545,159个断言 100000 FloatToText in 16.49ms,即6,062,443 / s,平均值0us,109.9 MB /秒 100.000 str。23.31ms,即4,290,004 / s,平均0us,94 MB /秒 100000 DoubleToShort在18.31毫秒内,即5,460,899 / s,平均0us,99 MB / s
  • 整数:33,860条断言传递了48.08ms
  • crc32c:290,087个断言通过了80.93ms pas 286.7 MB / s高速2.4 GB / s sse42 4.1 GB / s
  • Random32:201,002个断言传递了25.81ms
  • bloom过滤器:2,010,072个断言通过了128.92ms
  • DeltaCompress:87个断言通过了6.38ms
  • Curr 64:20056条断言通过了1.83ms
  • CamelCase:11条断言通过了116us
  • 位数:22,985条断言通过了14.47ms
  • Ini文件:7,028个断言传递了188.97ms! -UTF8:14,000 / 1,099,792失败1.15秒
  • URL解码:1,101个断言传递了561us
  • Baudot代码:传递了21.07毫秒的10,007个断言
  • ISO 8601日期和时间:200,831条断言通过了16.80ms
  • 时区:408个声明通过了212.13ms
  • MIME类型:30个断言通过了651us
  • 快速选择:4,015个断言传递了124.33ms
  • TSynTable:875个断言经过了2.34ms
  • TSynCache:404断言传递了404us
  • TSynFilter:1,005个断言传递了2.57毫秒
  • TSynValidate:677个声明通过了774us
  • TSynLogFile:49个断言通过了977us
  • TSynUniqueIdentifier:传递了1,300,002个断言515.62ms失败总数:14,000 / 22,692,553-低级别常见失败7.45s

Windows 10 64位(10.0.18362)(cp874) 使用mORMot 1.18.6102的8个Intel(R)Core(TM)i5-9300H CPU @ 2.40GHz(x86) 具有内部MM的TSQLite3LibraryStatic 3.32.3生成于:Delphi 10.3 Rio 32位编译器

所有测试已耗用的时间:2分29秒,由2020-08-06 23:58:11执行 LENOVO在LAPTOP-BED954TL上

所有测试服的总断言失败:14,000 / 45,919,717! 某些测试失败:请更正代码。

完成-按Enter退出

1 个答案:

答案 0 :(得分:3)

回归测试有一个限制。

输出状态:

Windows 10 64bit (10.0.18362) (cp874)

您使用的系统带有Code Page 874

在某些测试过程中,通过AnsiString类型执行了WinAnsi的UTF-8(又名code page 1252),并且您自己的代码页中可能缺少一些字符。

因此报告了一些测试失败。

由于当前测试的某些限制,这是一个误报错误。将来我会尽量避免此类问题。

如果您可以编译TestSQL3,则很可能您的安装是正确的,并且可以按预期使用内部UTF-8内容(mORMot在内部与UTF-8一起使用) JSON(以避免不必要的转换)和常规VCL string类型(即UTF-16)可以通过UTF8ToString/StringToUTF8()函数安全地使用。