§ 3. Покрытие тестами и документация
01Перед выполнением заданий скопируйте исходный код программы, используя следующие команды.
git clone https://courses.igankevich.com/system-programming/base64.git cd base64 meson build cd build ninja ./src/base64/base64
Перед вами программа, которая кодирует данные в формате BASE64 и декодирует их обратно.
Задания
- Напишите модульные тесты для функций
base64_encode
иbase64_decode
и доведите уровень покрытия тестами этих функций до 100%по веткам кода . Из-за ограничений компилятора в строчках, где выбрасываются исключения, одна из веток останется неохваченной; этот дефект мы игнорируем, но в тестах все равно должны проверяться все исключения. На финальную цифру отчета внимания можно не обращать, поскольку она дается для всей программы, а не для наших двух функций. Для генерации отчета о покрытии тестами, используйте следующие команды.meson configure -Db_coverage=true # включить запись данных ninja test # запустить тесты, чтобы собрать данные ninja coverage-html # сгенерировать HTML-отчет
Примеры входных и выходных значений для этой кодировки есть в спецификации BASE64. - Напишите документацию для функции
base64_encode
иbase64_decode
, используя Doxygen. В документации должны быть описаны все аргументы функции и выходное значение (при наличии). О том, как писать документацию, и какие параметры необходимо указать вDoxyfile
, узнайте из документации самого Doxygen. - Автоматизируйте сборку документации с помощью Meson, создав отдельный
run_target
для нее.