Занимательная статистика — 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-дерево.