Занимательная статистика — assert’ы в коде IBProvider’а.

Привет всем.

Утреннее созерцание прогона тестов с использованием отладочной сборки провайдера, привело к мысли — а сколько в его коде ассертов, собственно говоря?

Тупой поиск (прямо из VS2010) в проекте провайдера (2045 файлов), показал следующие цифры

  • «assert» — 13865 строк (844 файла)
  • «assert_msg» — 458 строк (138 файлов)
  • «_VERIFY» — 224 строки (99 файлов)
  • «_VERIFY_MSG» — 17 строк (7 файлов)

Разум тихо шепчет — «ты же не подключил к проекту все файлы конвертора OLEDB-типов, которых чуть больше чем … много».

Для сравнения — аналогичный поиск в основном солюшене FB3 (988 файлов), показывает следующие цифры:

  • «fb_assert» — 2453 строк (287 файлов)

Контрольный поиск grep-ом в каталоге FB3\src показал схожие цифры — 2497 линии в 293 файлах. Так что поиск из IDE показывает достаточно реалистичные цифры 🙂

PS. Когда мысли заходят об использовании ассеров в коде, я вспоминаю адские проверки в B+ дереве (lib/structure/tree/t_tree_bplus_xxxx.h/cc). В данной исследовании они не учитывались. Потому что я так и не рискнул использовать его в своих проектах. Хотя на него была угроблена тонна времени и оно было полностью оттестировано. В провайдере в основном используется AVL-дерево.

Новый триал. Сборка 13911.

Привет всем.

На сайт провайдера выгружен новый триал. Изменений внесено достаточно много. Ключевыми являются:

1. Новый двухфазный алгоритм установки значений OLEDB свойств.
2. Новая реализация Forward-Only Read-Only наборов рядов.
(далее…)

record disappeared (186), file: vio.cpp line: 408 …

Привет всем.

Последние дни идет зверское тестирование следующего выпуска провайдера — 3.13.1. Задействовано все, что шевелится сможет отработать тесты в обозримые сроки.

На новой игрушке с Core i7 один из тестов отвалился с ошибкой «internal Firebird consistency check (record disappeared (186), file: vio.cpp line: 408)». Firebird 2.5.3.26543 x64 SuperClassic. Пользуясь случаем, хочу передать привет Украине. Впрочем, его уже передали 🙂

Текущее состояние.

Привет всем.

Сегодня были собраны финальные бинарники следующего выпуска провайдера (v3.13) и запущено их релизное тестирование. Была мысль после v3.12 выпустить v3.14. Но потом подумал — после всех десятков килотонн тестов, которые были выполнены в процессе разработки (и выполняются в данный момент) проявлять такое суеверие просто несерьезно :). (далее…)

InterBase XE3 (v11). Меня терзают смутные сомнения …

Привет всем.

Скачал это чудо. Еще в прошлом месяце. Но только сегодня вот добрался до «попробовать».

1. На голую XP SP2 поставился с ошибкой в процессе инсталляции. После перезагрузки (которую предложил сделать инсталлятор), вроде все нормально зарегистрировалось. Я не стал разбираться. Память мне подсказывает, что оно и раньше инсталлировалось с ошибкой.

2. Тестовые базы данных (для первого и третьего диалекта) создались без проблем.

3. Стал копаться с настройками тестов. Обнаружил странный тест для «тестирования баги в сервере». Я сначала не вьехал. А потом сказал — «ААААА!». Суть теста:

SET TRANSACTION;
SAVEPOINT A;
COMMIT RETAIN;
RELEASE SAVEPOINT A; /*Тут должна быть ошибка*/

Если мне не изменяет память, эту багу нашли в FB1.5 где-то в 2005. И её там сразу оперативно поправили. А копипастеры InterBase, это изменение не отследили. Ну и бага теперь стала частью функционала InterBase. Что подтверждено соответствующими конструкциями в нашей тестовой системе.

Мрак.

Новый триал [сборка 13468].

Привет всем.

На сайт выгружен дистрибутив новой сборки провайдера 3.12.0.13468, в которой, фактически, завершена летняя работа над ошибками. (далее…)

Новый триал [сборка 13377]

Привет всем.

На сайт выложен очередной триал, в котором продолжена ревизия и доработка управления транзакциями. На этот раз основные изменения касаются вложенных транзакций. (далее…)

Новый триал [сборка 13258].

Привет всем.

На сайт выложен дистрибутив нового триала, в который внесены следующие изменения: (далее…)

Вкратце.

Привет всем.

Сегодня первый день после настоящих летних каникул. Было классно, но теперь надо возвращаться к реальности 🙂

В отличии от прошлого года, я не запускал «большое» тестирование. С одной стороны — жалко было бить диски. А с другой — новозеланские парни взяли этот вопрос на себя. Через полтора месяца прислали положительный отзыв о провайдере и забавный отзыв об альтернативах — «all of the alternatives are incredibly buggy» 🙂

За время каникул было обдумано текущее состояние провайдера и новой игрушки — .NET провайдера. Вспомнились мелкие и достаточно крупные идеи. И вроде как даже появилось сильное желание их реализовать. Так что первое что я сегодня сделал — купил новую клавиатуру взамен разбитой за восемь лет старой. И подключил ноутбук (который заменил монстрообразный десктоп) к нормальному 24-дюймовому монитору. Пора играть по-взрослому 🙂

Новый триал [сборка 13196].

Привет всем.

В новом триале провайдера добавлено свойство инициализации и набора рядов named_param_rules, которое позволяет сохранять префикс в имени параметра запроса. Вот пример, с использованием нашего ADO.NET провайдера для OLEDB: (далее…)