У меня есть большая кодовая база довольно старого кода на C во встроенной системе, и, к сожалению, нет автоматических тестов / наборов. Это делает реструктуризацию и рефакторинг кода опасной задачей.
Написание тестовых примеров вручную занимает очень много времени, поэтому я подумал, что должна быть возможность автоматизировать хотя бы некоторую часть этого процесса, например, путем отслеживания всех вызовов функций и записи входных и выходных значений. Затем я мог бы использовать эти значения в тестовых случаях (это не будет работать для всех, но по крайней мере для некоторых функций). Вероятно, было бы также возможно создать фиктивные функции на основе собранных данных.
Наличие таких тестовых примеров сделает рефакторинг менее опасным.
Существуют ли решения, которые уже могут это сделать? Что было бы самым простым способом заставить это работать, если бы мне пришлось самому кодировать это?
Я думал об использовании ctags
для поиска определений функций и оборачивании их в функцию, которая записывает значения параметров. Другой возможностью, вероятно, будет плагин компилятора gcc.