Этап 5. Регрессионное тестирование.
Регрессионное тестирование – не обязательный, но рекомендуемый этап. Он позволяет убедиться в том, что после компиляции исходных текстов PostgreSQL работает так, как ожидается. В процессе тестирования проверяются как стандартные операции SQL, так и расширенные возможности PostgreSQL. Регрессионные тесты помогают выявить возможные проблемы, возникающие при работе PostgreSQL.
Регрессионное тестирование выполняется командой gmake check. Результат ее выполнения показан в листинге 2.8.
Листинг 2.8. Регрессионное тестирование.
[postgres(?host postgresql-7.1.3]f gmake check gmake – С doc all gmake[l]: Entering directory /usr/local/src/postgresql-7.1.3/doc' gmake[l]: Nothing to be done for all'. gmake[l]: Leaving directory /usr/local/src/postgresql-7.1.3/doc' […]
Команда gmake check строит тестовый вариант PostgreSQL и выполняет серию тестов. После завершения каждого теста выводится результат: ok для удачных тестов и failed для неудачных. Примерный вид сообщения об ошибке приведен в листинге 2.9 (вероятно, в вашей системе количество тестов будет выше указанного).
Листинг 2.9. Выходные данные регрессионных тестов.
============ 1 of 76 tests failed. ============ The differences that caused some tests to fail can be viewed in the file./regression. (Jiffs'. A copy of the test summary that you see above is saved in the file./regression.out'.
Файлы, упоминаемые в листинге 2.9 (regression.diffs и regression.out), размещаются в подкаталоге src/test/regress каталога исходных текстов. Если исходные тексты PostgreSQL размещаются в каталоге /usr/local/src, то файлы результатов регрессионных тестов будут находиться в каталоге /usr/local/src/postgresql-[ версия ]/src/ test/regress.
Регрессионные тесты не всегда выявляют все возможные ошибки. Проблемы иногда возникают из-за несогласованности параметров локального контекста (например, часовых поясов) или специфики оборудования (скажем, результатов операций с плавающей точкой). При разработке приложений PostgreSQL обязательно проводите собственное тестирование.
Внимание
Регрессионные тесты не могут выполняться с правами root. Команда gmake check должна запускаться пользователем postgres.