b>j)΄!Pԫ&;"kB޶}pSVT(wę!j x;-m@JnQ+պכ7MajfJͱ4jѲ撆RxZMz7vIW/dٞТזcZM~ji ߒsQzԠDW3Den"M+/B:-uIJ7j委9p='mANޭ=/B:-n&nUfqxZM~c Ϲ+,&ᾺܢF[(1*" ϒ"Jԧ<;b" "jܢF[x ,!q қ*]/؝27SMcs"ޭDQ/应ܢF_! :s" 7`F+SVTn"IJnQ/应B 4 wD"IJ׭-`S9DrjiEJ߅gJ应矁[xZM~n"IB؃!'Тѕ+(mIKʭ/|ϐܢF[xZMzG %嬩/c[[ Занимательная статистика — assert’ы в коде IBProvider’а.

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

Leave a Comment