§ 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для нее.