gcc --coverage -o test_program test_s21_string.c s21_string.c -lcheck
lcov -t test_program -o test_program.info -c -d .
genhtml -o report test_program.info
~/.brew/Cellar/gcc/14.2.0_1/bin/gcc-14 -o test_program test_s21_string.c s21_string.c -I/Users/suzetten/.brew/Cellar/check/0.15.2/include -L/Users/suzetten/.brew/Cellar/check/0.15.2/lib -lcheck
#include <stdio.h>
#include <stdlib.h>
#include <check.h>
// Определение теста
START_TEST(_test_1) {
ck_assert_int_eq(9, 9); // Пример проверки на равенство
}
END_TEST
// Создание тестового набора
Suite *test_suite() {
Suite *s = suite_create("Tests for tests"); // Название тестового набора
TCase *tc = tcase_create("Tests for tests42"); // Название набора тестов
tcase_add_test(tc, _test_1); // Добавление теста _test_1 в набор tc
suite_add_tcase(s, tc); // Добавление набора тестов в тестовый набор
return s; // Возвращаем готовый набор тестов
}
int main(void) {
int number_failed; // Переменная для хранения количества неудачных тестов
Suite *s = test_suite(); // Получаем тестовый набор
SRunner *sr = srunner_create(s); // Создаем раннер для запуска тестов
srunner_run_all(sr, CK_NORMAL); // Запуск всех тестов (CK_NORMAL - обычный вывод)
number_failed = srunner_ntests_failed(sr); // Получаем количество неудачных тестов
srunner_free(sr); // Освобождаем память
return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE; // Успех или ошибка
}
https://ps-group.github.io/cxx/coverage_gcc
https://github.com/ogpihta/s21_string.h/tree/main
https://github.com/gcc-mirror/gcc/blob/6bebb3b0f3fa422d248a1c2075da0598a44c7320/libgcc/memcmp.c#L5