Delphi - mORMot: Не удалось установить. Ошибка автоматического тестирования в тесте UTF8! Как это исправить? - PullRequest
2 голосов
/ 06 августа 2020

Я добавил папки mORMot в библиотеку Delphi и проверил, правильно ли она работает, запустив TestSQL3 в папке SQLite3. И он показывает ошибку в UTF8

! - UTF8: 14,000 / 1,099,792 НЕ УДАЛОСЬ 1.15s

Как это исправить? Пожалуйста помоги!! Заранее благодарим.

Краткое описание mORMot Framework Автоматические тесты

  1. Сводные библиотеки

1.1. Обычный низкий уровень:

  • Запись копии системы: пройдено 162 утверждений 108us
  • TRawUTF8List: 190172 утверждения 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 мс
  • TObjectList Hashed: 2,996,100 1029 *
  • TObjectListSorted: 79 912 утверждений пройдено 51,59 мс
  • TSynNameValue: 40 032 пройдено 5,54 мс
  • TRawUTF8Interning: 2 000 013 утверждений пройдено 122,39 мс 500000 интернированных 8 КБ за 40,91 мс, т.е. 12 212 мс, т.е. 12 212 мс средн. 0us, 186,4 МБ / с 500000 напрямую 7,6 МБ за 12,76 мс, т. Е. 39 175 742 / с, средн. 0us, 597,7 МБ / с
  • TObjectDynArrayWrapper: передано 167 501 утверждения 13,25 мс
  • TObjArray: передано 3230 утверждений 1,72 мс
  • Пользовательский RTL: 77 552 утверждения прошли 1 с FillChar за 30,56 мс, 12,7 ГБ / с, перемещение за 4,51 мс, 3,4 ГБ / с, небольшое, перемещение за 5,86 мс, 3,7 ГБ / с, большое, перемещение за 106,81 мс, 3,6 ГБ / с, FillCharFast [] за 33,54 мс, 11,5 ГБ / с, MoveFast [] за 3,61 мс , 4,3 ГБ / с, малый MoveFast [] за 5,76 мс, 3,8 ГБ / с, большой MoveFast [] за 105,27 мс, 3,7 ГБ / с
  • Быстрое сравнение строк: пройдено 71 утверждение 268us
  • IdemPropName : Передано 216 утверждений 207us
  • Кодировка URL: передано 152 утверждений 1,08 мс
  • GUID: передано 10,007 утверждений 2,75 мс
  • ParseCommandArguments: передано 232 утверждения 370us
  • IsMatch: передано 4250 утверждений 2,27 мс
  • TExprParserMatch: передано 140 утверждений 663us
  • Soundex: передано 35 утверждений 518us
  • Числовые преобразования: 2545 159 утверждений передано 351,35 мс 100000 FloatToText т.е. 6,062,443 / с, средн. 0us, 109,9 МБ / с 100000 str за 23,31 мс, т.е. 4,290,004 / с, средн. 0us, 94 МБ / с 100000 DoubleToShort за 18,31 мс, т.е. 5 460 899 / с, средн. 0us, 99 МБ / с
  • Целые числа: 33 860 утверждений пройдено 48,08 мс
  • crc32 c: пройдено 290 087 утверждений 80,93 мсек 286,7 МБ / с быстро 2,4 ГБ / с sse42 4,1 ГБ / с
  • 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: 14000/1099792 НЕ ВЫПОЛНЕНО 1,15 с
  • Расшифровка URL: передано 1101 утверждение 561us
  • Код Бодо: пройдено 10 007 утверждений 21,87 мс
  • Дата и время ISO 8601: 200 831 утверждение пройдено 16,80 мс
  • Часовые пояса: передано 408 утверждений 212,13 мс
  • Типы Mime: пройдено 30 утверждений 651us
  • Быстрый выбор: пройдено 4015 утверждений 124,33 мс
  • TSynTable: передано 875 утверждений 2,34 мс
  • TSynCache: передано 404 утверждения 404us
  • TSynFilter: выполнено 1005 утверждений 2,57 мс
  • TSynValidate: пройдено 677 утверждений 774us
  • TSynLogFile: пройдено 49 утверждений 977us
  • TSynUniqueIdentifier: 1300 002 утверждения 515,62 мс Всего не удалось: 14000/22 692 553 - Обычный низкий уровень НЕ ВЫПОЛНЕН 7,45 с

Windows 10 64 бит (10.0.18362 ) (cp874) 8 x Intel (R) Core (TM) i5-9300H CPU @ 2,40 ГГц (x86) Использование mORMot 1.18.6102 TSQLite3LibraryStati c 3.32.3 с внутренним MM Создано с помощью: Delphi 10.3 R io 32-битный компилятор

Истекшее время для всех тестов: 2 мин. 29 Выполнено 2020-08-06 23:58:11 LENOVO на LAPTOP-BED954TL

Общее количество утверждений не выполнено для всех тестовых комплектов: 14 000/45 919 717! Некоторые тесты не пройдены: исправьте код.

Готово - для выхода нажмите ENTER

1 Ответ

3 голосов
/ 06 августа 2020

Существует ограничение на регрессионные тесты.

Как указано в ваших выходных данных:

Windows 10 64bit (10.0.18362) (cp874)

вы используете систему с кодовой страницей 874 .

Во время некоторых тестов некоторые UTF-8 для WinAnsi - также известные как кодовая страница 1252 - выполняются через тип AnsiString, и некоторые символы могут отсутствовать в вашем собственном коде стр.

Поэтому сообщается о некоторых неудачах теста.

Это ложноположительная ошибка из-за некоторых ограничений текущих тестов. Я постараюсь избежать такой проблемы в будущем.

Если вы можете скомпилировать TestSQL3, очень вероятно, что ваша установка верна , и она будет работать должным образом с внутренним UTF -8 (mORMot внутренне работает с UTF-8 JSON, чтобы избежать ненужных преобразований), а обычный тип VCL string, то есть UTF-16, будет безопасно доступен через функции UTF8ToString/StringToUTF8().

...