Вызов функции C и трассировка параметров - тестовый пример и создание макета

У меня есть большая кодовая база довольно старого кода C во встроенной системе, и, к сожалению, нет автоматических тестовых примеров / наборов. Это делает реструктуризацию и рефакторинг кода опасной задачей.

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

Наличие таких тестовых примеров сделало бы рефакторинг менее опасным занятием.

Есть ли какие-то решения, которые уже могут это сделать? Каким был бы самый простой способ заставить это работать, если бы мне пришлось самому писать код?

Я подумал об использовании ctags , чтобы найти определения функций, и обернуть их в функцию, которая записывает значения параметров . Другой возможностью, вероятно, был бы плагин компилятора gcc.

8
задан trenki 23 February 2012 в 15:08
поделиться