Annotation of embedaddon/php/ext/pdo/tests/pdo_test.inc, revision 1.1.1.3
1.1 misho 1: <?php
2: # PDO test framework utilities
3:
4: if (getenv('PDOTEST_DSN') === false) {
5: $common = '';
6: $append = false;
7: foreach(file(dirname($_SERVER['PHP_SELF']).'/common.phpt') as $line) {
8: if ($append) {
9: $common .= $line;
10: } elseif (trim($line) == '--REDIRECTTEST--') {
11: $append = true;
12: }
13: }
14: $conf = eval($common);
15: foreach($conf['ENV'] as $n=>$v) putenv("$n=$v");
16: }
17:
18: class PDOTest {
19: // create an instance of the PDO driver, based on
20: // the current environment
21: static function factory($classname = 'PDO', $drop_test_tables = true) {
22: $dsn = getenv('PDOTEST_DSN');
23: $user = getenv('PDOTEST_USER');
24: $pass = getenv('PDOTEST_PASS');
25: $attr = getenv('PDOTEST_ATTR');
26: if (is_string($attr) && strlen($attr)) {
27: $attr = unserialize($attr);
28: } else {
29: $attr = null;
30: }
31:
32: if ($user === false) $user = NULL;
33: if ($pass === false) $pass = NULL;
34:
35: $db = new $classname($dsn, $user, $pass, $attr);
36:
37: if (!$db) {
38: die("Could not create PDO object (DSN=$dsn, user=$user)\n");
39: }
40:
41: // clean up any crufty test tables we might have left behind
42: // on a previous run
43: static $test_tables = array(
44: 'test',
45: 'test2',
46: 'classtypes'
47: );
48: if ($drop_test_tables) {
49: foreach ($test_tables as $table) {
50: $db->exec("DROP TABLE $table");
51: }
52: }
53:
54: $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
55: $db->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER);
56: $db->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, true);
57: return $db;
58: }
59:
60: static function skip() {
61: try {
62: $db = PDOTest::factory();
63: } catch (PDOException $e) {
64: die("skip " . $e->getMessage());
65: }
66: }
67:
68: static function test_factory($file) {
1.1.1.3 ! misho 69: $config = self::get_config($file);
1.1 misho 70: foreach ($config['ENV'] as $k => $v) {
71: putenv("$k=$v");
72: }
73: return self::factory();
74: }
1.1.1.3 ! misho 75:
! 76: static function get_config($file) {
! 77: $data = file_get_contents($file);
! 78: $data = preg_replace('/^.*--REDIRECTTEST--/s', '', $data);
! 79: $config = eval($data);
! 80:
! 81: return $config;
! 82: }
1.1 misho 83: }
1.1.1.2 misho 84: ?>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>