PDO のドライバをリリースする前には「コア」テストをパスする必要があります。 このテストは PHP のソース配布物から実行するように設計されており、 ドライバのテストを行うには多少の手続きが必要になります。最新の PHP 5.1 スナップショットを取得し、以下の手順で進めることを推奨します。
$ cp -r pdo_SKEL /path/to/php-5.1/ext
これにより、テストを実行するためのハーネスをセットします。 次にすべきことは、PDO の共通コアテストにリダイレクトするテストを 作成することです。このファイルの名前は common.phpt とし、 ext_skel で雛形を作成したときに同時に作成された tests ディレクトリの中に置かなければなりません。 このファイルの中身は以下のようになります。
--TEST--
SKEL
--SKIPIF--
<?php # vim:ft=php
if (!extension_loaded('pdo_SKEL')) print 'skip'; ?>
--REDIRECTTEST--
if (false !== getenv('PDO_SKEL_TEST_DSN')) {
# user set them from their shell
$config['ENV']['PDOTEST_DSN'] = getenv('PDO_SKEL_TEST_DSN');
$config['ENV']['PDOTEST_USER'] = getenv('PDO_SKEL_TEST_USER');
$config['ENV']['PDOTEST_PASS'] = getenv('PDO_SKEL_TEST_PASS');
if (false !== getenv('PDO_SKEL_TEST_ATTR')) {
$config['ENV']['PDOTEST_ATTR'] = getenv('PDO_SKEL_TEST_ATTR');
}
return $config;
}
return array(
'ENV' => array(
'PDOTEST_DSN' => 'SKEL:dsn',
'PDOTEST_USER' => 'username',
'PDOTEST_PASS' => 'password'
),
'TESTS' => 'ext/pdo/tests'
);
これは共通コアテストを実行し、 PDOTEST_DSN、PDOTEST_USER および PDOTEST_PASS をそれぞれ PDO コンストラクタの パラメータ dsn 、username および password として渡します。 テストハーネスの実行時には、まずはじめに環境変数をチェックします。 もし存在すれば、テストファイル内にハードコーディングされた条件の かわりにそれらの適切な値を渡すようにします。
テストハーネスは以下のように起動します。
$ cd /path/to/php-5.1 $ make TESTS=ext/pdo_SKEL/tests PDO_SKEL_TEST_DSN="skel:dsn" \ PDO_SKEL_TEST_USER=user PDO_SKEL_TEST_PASS=pass test