Как стать автором
Обновить
4
0
Игорь Бахарев @baharev_il

Пользователь

Отправить сообщение

Там написано то, что написано.

no return value is reserved to indicate an error

Всё остальное - субъективно.

Соответственно, я проверяю так, как написано.

Здесь я просто опирюсь на стандарт POSIX:

malloc: https://pubs.opengroup.org/onlinepubs/9699919799/functions/malloc.html

memcpy: https://pubs.opengroup.org/onlinepubs/9699919799/functions/memcpy.html

Где ответ NULL зарезервирован и является индикатором ошибки.

Вы совершенно правы. Точечный, контролируемый фаззинг. Не как с ulimit, а когда точно знаешь где, когда и в какой потоковой функции выстрелит.

Не будем продолжать, дабы не превратить в спор. Спасибо за идею со счётчиком вызовов.

Понял вас отлично.) Но не согласен с вашей точкой зрения. "Генерация и обработка надуманных ошибок" - de facto стандарт продуктовой разработки и чем они разнообразнее и нетривиальнее - тем лучше. Думаю, здесь меня поддержат многочисленные профессиональные тестировщики. А вот когда все усилия сконцентрированы на одной бизнес-логике и программа ломается на любое отклонение от идеальных условий - как раз то, что вы называете "индусский код".

Повторю еще раз: Умные указатели не панацея и в рамках С++. Особенно, когда речь идет о многопоточности (еще один продуктовый стандарт). На эту тему уже писали здесь, на Хабре: https://habr.com/ru/articles/311560/

Спасибо вам за проявленный интерес.

Соглашусь с утверждением, что юнит-тестирование слабо влияет на качество архитектуры программы. Но является фундаментом для программы с любым качеством архитектуры.

Более того, использование умных указателей (которых нет в Си) - также совсем не панацея от всего и подлежит тестированию.

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность

Специализация

Backend Developer, Application Developer
Git
Linux
C
Algorithms and data structures
Software development
Programming microcontrollers
Applied math
C++
English
Research work