Этап 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.