Существует ли платформа для запуска модульных тестов на модулях Apache C?

StackOverflow https://stackoverflow.com/questions/325894

Вопрос

Я собираюсь внести некоторые изменения в существующий модуль Apache C, чтобы исправить некоторые возможные недостатки безопасности и общие плохие практики.Однако функциональность кода должна оставаться неизменной (за исключением случаев, когда в нем исправлена ошибка).Стандартное регрессионное тестирование, похоже, в порядке вещей.Я хотел бы знать, знает ли кто-нибудь о хорошем способе повторного запуска некоторых модульных тестов регрессии в коде.Я думаю о чем-то вроде использования C-Единица измерения но со всеми привязками к Apache APR и статусным структурам мне было интересно, есть ли хороший способ протестировать это.Существуют ли какие-либо готовые фреймворки, которые можно использовать, например, с C-unit?

Спасибо

Питер

Это было полезно?

Решение

Я уже некоторое время думал ответить на этот вопрос, но решил, что кто-то другой может предложить лучший ответ, потому что мой довольно неудовлетворительный:нет, я не знаю ни о каком подобном фреймворке модульного тестирования.

Я думаю, что вам лучше всего попробовать реорганизовать ваш модуль C таким образом, чтобы его зависимости от базы кода httpd содержались в очень тонком клеевом слое.Я бы не стал слишком беспокоиться о зависимостях от APR, которые могут быть легко связаны с вашим кодом модульного тестирования.Это такие вещи, как использование записи запроса, от которых вы должны попытаться немного абстрагироваться.

Я зайду так далеко и предположу, что такой рефакторинг - хорошая идея, если есть подозрение, что код содержит недостатки безопасности и плохие практики.Просто обычно это довольно большая работа.

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

Итак, это не тот ответ, который вы искали, и вы, вероятно, сами подумали о чем-то в этом роде.Но, по крайней мере, я могу сказать вам по опыту, что если модуль не может быть заменен чем-то новым по деловым соображениям, то рефакторинг его для тестируемости, скорее всего, окупится в долгосрочной перспективе.

Другие советы

Потратил некоторое время на то, чтобы поискать вас в интернете, поскольку этот вопрос мне самому был любопытен.наткнулся на вики- статью , в которой говорится, что

http://cutest.sourceforge.net/

был использован для тестирования apache portable c runtime.возможно, стоит это проверить.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top