Перед запуском тестов необходимо отредактировать файл
details.inc и задать значения переменным
$user, $password и строке соединения $dbase. Набор тестов OCI8
разрабатывался с использованием учетной записи
SYSTEM. Некоторые тесты не будут выполняться, если
у тестирующего пользователя нет аналогичных прав доступа.
Для тестирования функции Oracle 11g создания пулов соединений
(Database Resident Connection Pooling) необходимо установить переменную
$test_drcp в TRUE, а также убедитесь, что в строке
соединения задан соответствующий адрес DRCP сервера.
В качестве альтернативы редактированию файла
details.inc можно задать значения переменным
окружения, например:
$ export PHP_OCI8_TEST_USER=system
$ export PHP_OCI8_TEST_PASS=oracle
$ export PHP_OCI8_TEST_DB=localhost/XE
$ export PHP_OCI8_TEST_DRCP=FALSE
Обратите внимание, что в некоторых оболочках эти переменные могут
неправильно транслироваться в PHP процесс, и в тестах будут возникать
ошибки подключения к базе данных. Будьте аккуратны при использовании этого
метода настройки расширения.
Далее необходимо задать окружение базы данных Oracle. Для Oracle 10gR2 XE
это:
$ . /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh
Для Oracle 11gR2 XE:
$ . /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh
Для других версий:
$ . /usr/local/bin/oraenv
Некоторые оболочки требуют, чтобы в php.ini параметр
variables_order содержал литеру E, например:
variables_order = "EGPCS"
Запуск всех PHP тестов можно осуществить командой:
$ cd your_php_src_directory
$ make test
либо можно запустить только OCI8 тесты:
$ cd your_php_src_directory
$ make test TESTS=ext/oci8
По завершении тестирования, просмотрите журналы на наличие ошибок.
На слабых машинах время выполнения некоторых тестов может превысить
значение настройки таймаута в файле run-tests.php.
Чтобы это исправить, задайте переменной окружения
TEST_TIMEOUT значение по-больше (значение в секундах).
На быстрых вычислительных системах с локальной базой данных, рассчитанных
на небольшие нагрузки (например Oracle 11gR2 XE), некоторые тесты могут
вызывать ORA-12516 или ORA-12520 ошибки. Для их предотвращения необходимо
увеличить значение параметра базы данных PROCESSES
по инструкции ниже:
Подключиться к базе данных в роли суперпользователя:
Задать необходимое окружение с помощью сценариев
oracle_env.sh или
oraenv, как описано выше.
Запустить утилиту командной строки SQL*Plus и увеличить значение
PROCESSES
$ sqlplus / as sysdba
SQL> alter system set processes=100 scope=spfile
Перезапустить базу данных: