§ 3. Покрытие тестами и документация

01Перед выполнением заданий скопируйте исходный код программы, используя следующие команды.

git clone https://courses.igankevich.com/system-programming/base64.git
cd base64
meson build
cd build
ninja
./src/base64/base64

Перед вами программа, которая кодирует данные в формате BASE64 и декодирует их обратно.

Задания

  1. Напишите модульные тесты для функций base64_encode и base64_decode и доведите уровень покрытия тестами этих функций до 100% по веткам кода. Из-за ограничений компилятора в строчках, где выбрасываются исключения, одна из веток останется неохваченной; этот дефект мы игнорируем, но в тестах все равно должны проверяться все исключения. На финальную цифру отчета внимания можно не обращать, поскольку она дается для всей программы, а не для наших двух функций. Для генерации отчета о покрытии тестами, используйте следующие команды.
    meson configure -Db_coverage=true # включить запись данных
    ninja test # запустить тесты, чтобы собрать данные
    ninja coverage-html # сгенерировать HTML-отчет
    
    Примеры входных и выходных значений для этой кодировки есть в спецификации BASE64.
  2. Напишите документацию для функции base64_encode и base64_decode, используя Doxygen. В документации должны быть описаны все аргументы функции и выходное значение (при наличии). О том, как писать документацию, и какие параметры необходимо указать в Doxyfile, узнайте из документации самого Doxygen.
  3. Автоматизируйте сборку документации с помощью Meson, создав отдельный run_target для нее.