【问题标题】:Delphi - mORMot : Installation went wrong. Automated Test Error on UTF8 test! How do I Fix this?Delphi - mORMot:安装出错。 UTF8 测试中的自动测试错误!我该如何解决?
【发布时间】:2020-08-06 17:49:22
【问题描述】:

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

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

我该如何解决这个问题?请帮忙!!提前谢谢你。

概要 mORMot 框架自动化测试


  1. 概要库

1.1。低级通用:

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

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

所有测试经过的时间:2 分 29 秒执行于 2020 年 8 月 6 日 23:58:11 LAPTOP-BED954TL上的联想

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

完成 - 按 ENTER 退出

【问题讨论】:

    标签: unit-testing delphi mormot


    【解决方案1】:

    回归测试有一个限制。

    正如您的输出所述:

    Windows 10 64bit (10.0.18362) (cp874)
    

    您正在使用带有Code Page 874 的系统。

    在某些测试期间,一些 UTF-8 到 WinAnsi - 又名 code page 1252 - 是通过 AnsiString 类型执行的,并且您自己的代码页可能会丢失一些字符。

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

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

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

    【讨论】:

      猜你喜欢
      • 2022-07-10
      • 1970-01-01
      • 2020-02-26
      • 2023-03-29
      • 2016-05-12
      • 2020-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多