Set up PDO constant and configuration
diff --git a/.travis.yml b/.travis.yml
index 033fd6a..97ea042 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -16,9 +16,9 @@
   - pyrus channel-discover pear.php-tools.net
   - pyrus install http://pear.php-tools.net/get/vfsStream-0.11.2.tgz
   - phpenv rehash
-  - sh -c "if [ '$DB' = 'pgsql' | '$DB' = 'pdo/pgsql' ]; then psql -c 'DROP DATABASE IF EXISTS ci_test;' -U postgres; fi"
-  - sh -c "if [ '$DB' = 'pgsql' | '$DB' = 'pdo/pgsql' ]; then psql -c 'create database ci_test;' -U postgres; fi"
-  - sh -c "if [ '$DB' = 'mysql' | '$DB' = 'pdo/mysql' ]; then mysql -e 'create database IF NOT EXISTS ci_test;'; fi"
+  - sh -c "if [ '$DB' = 'pgsql' ] || [ '$DB' = 'pdo/pgsql' ]; then psql -c 'DROP DATABASE IF EXISTS ci_test;' -U postgres; fi"
+  - sh -c "if [ '$DB' = 'pgsql' ] || [ '$DB' = 'pdo/pgsql' ]; then psql -c 'create database ci_test;' -U postgres; fi"
+  - sh -c "if [ '$DB' = 'mysql' ] || [ '$DB' = 'pdo/mysql' ]; then mysql -e 'create database IF NOT EXISTS ci_test;'; fi"
 
 script: phpunit --configuration tests/travis/$DB.phpunit.xml
 
diff --git a/tests/mocks/database/config/pdo/mysql.php b/tests/mocks/database/config/pdo/mysql.php
new file mode 100644
index 0000000..cefb6b0
--- /dev/null
+++ b/tests/mocks/database/config/pdo/mysql.php
@@ -0,0 +1,37 @@
+<?php
+
+return array(
+	
+	// Typical Database configuration
+	'pdo/mysql' => array(
+		'dsn' => '',
+		'hostname' => 'localhost',
+		'username' => 'travis',
+		'password' => '',
+		'database' => 'ci_test',
+		'dbdriver' => 'pdo',
+		'pdodriver' => 'mysql',
+	),
+
+	// Database configuration with failover
+	'pdo/mysql_failover' => array(
+		'dsn' => '',
+		'hostname' => 'localhost',
+		'username' => 'not_travis',
+		'password' => 'wrong password',
+		'database' => 'not_ci_test',
+		'dbdriver' => 'pdo',
+		'pdodriver' => 'mysql',
+		'failover' => array(
+			array(
+				'dsn' => '',
+				'hostname' => 'localhost',
+				'username' => 'travis',
+				'password' => '',
+				'database' => 'ci_test',
+				'dbdriver' => 'pdo',
+				'pdodriver' => 'mysql',
+			),
+		),
+	),
+);
\ No newline at end of file
diff --git a/tests/mocks/database/config/pdo/pgsql.php b/tests/mocks/database/config/pdo/pgsql.php
new file mode 100644
index 0000000..b2f409d
--- /dev/null
+++ b/tests/mocks/database/config/pdo/pgsql.php
@@ -0,0 +1,37 @@
+<?php
+
+return array(
+	
+	// Typical Database configuration
+	'pdo/pgsql' => array(
+		'dsn' => '',
+		'hostname' => 'localhost',
+		'username' => 'postgres',
+		'password' => '',
+		'database' => 'ci_test',
+		'dbdriver' => 'pdo',
+		'pdodriver' => 'pgsql',
+	),
+
+	// Database configuration with failover
+	'pdo/pgsql_failover' => array(
+		'dsn' => '',
+		'hostname' => 'localhost',
+		'username' => 'not_travis',
+		'password' => 'wrong password',
+		'database' => 'not_ci_test',
+		'dbdriver' => 'pdo',
+		'pdodriver' => 'pgsql',
+		'failover' => array(
+			array(
+				'dsn' => '',
+				'hostname' => 'localhost',
+				'username' => 'postgres',
+				'password' => '',
+				'database' => 'ci_test',
+				'dbdriver' => 'pdo',
+				'pdodriver' => 'pgsql',
+			),
+		),
+	),
+);
\ No newline at end of file
diff --git a/tests/mocks/database/config/pdo/sqlite.php b/tests/mocks/database/config/pdo/sqlite.php
new file mode 100644
index 0000000..c6827b4
--- /dev/null
+++ b/tests/mocks/database/config/pdo/sqlite.php
@@ -0,0 +1,22 @@
+<?php
+
+return array(
+
+	// Typical Database configuration
+	'pdo/sqlite' => array(
+		'dsn' => 'sqlite:/'.realpath(__DIR__.'/..').'/ci_test.sqlite',
+		'dbdriver' => 'pdo',
+	),
+
+	// Database configuration with failover
+	'pdo/sqlite_failover' => array(
+		'dsn' => 'sqlite:/'.realpath(__DIR__.'/..').'/not_exists.sqlite',
+		'dbdriver' => 'pdo',
+		'failover' => array(
+			array(
+				'dsn' => 'sqlite:/'.realpath(__DIR__.'/..').'/ci_test.sqlite',
+				'dbdriver' => 'pdo',
+			),
+		),
+	),
+);
\ No newline at end of file
diff --git a/tests/mocks/database/config/sqlite.php b/tests/mocks/database/config/sqlite.php
index 8665e20..c70986e 100644
--- a/tests/mocks/database/config/sqlite.php
+++ b/tests/mocks/database/config/sqlite.php
@@ -1,5 +1,4 @@
 <?php
-$dbdriver = is_php('5.4') ? 'sqlite3' : 'sqlite';
 
 return array(
 
@@ -10,7 +9,7 @@
 		'username' => 'sqlite',
 		'password' => 'sqlite',
 		'database' => realpath(__DIR__.'/..').'/ci_test.sqlite',
-		'dbdriver' => $dbdriver,
+		'dbdriver' => is_php('5.4') ? 'sqlite3' : 'sqlite',
 	),
 
 	// Database configuration with failover
@@ -20,7 +19,7 @@
 		'username' => 'sqlite',
 		'password' => 'sqlite',
 		'database' => '../not_exists.sqlite',
-		'dbdriver' => $dbdriver,
+		'dbdriver' => is_php('5.4') ? 'sqlite3' : 'sqlite',
 		'failover' => array(
 			array(
 				'dsn' => '',
@@ -28,7 +27,7 @@
 				'username' => 'sqlite',
 				'password' => 'sqlite',
 				'database' => realpath(__DIR__.'/..').'/ci_testf.sqlite',
-				'dbdriver' => $dbdriver,
+				'dbdriver' => is_php('5.4') ? 'sqlite3' : 'sqlite',
 			),
 		),
 	),
diff --git a/tests/travis/pdo/mysql.phpunit.xml b/tests/travis/pdo/mysql.phpunit.xml
index eb650fa..69eece2 100644
--- a/tests/travis/pdo/mysql.phpunit.xml
+++ b/tests/travis/pdo/mysql.phpunit.xml
@@ -10,7 +10,7 @@
 	stopOnIncomplete="false"
 	stopOnSkipped="false">
 	<php>
-        <const name="DB_DRIVER" value="mysql"/>
+        <const name="DB_DRIVER" value="pdo/mysql"/>
     </php>
 	<testsuites>
 		<testsuite name="CodeIgniter Core Test Suite">
diff --git a/tests/travis/pdo/pgsql.phpunit.xml b/tests/travis/pdo/pgsql.phpunit.xml
index 351f690..e68c3e0 100644
--- a/tests/travis/pdo/pgsql.phpunit.xml
+++ b/tests/travis/pdo/pgsql.phpunit.xml
@@ -10,7 +10,7 @@
 	stopOnIncomplete="false"
 	stopOnSkipped="false">
 	<php>
-        <const name="DB_DRIVER" value="pgsql"/>
+        <const name="DB_DRIVER" value="pdo/pgsql"/>
     </php>
 	<testsuites>
 		<testsuite name="CodeIgniter Core Test Suite">
diff --git a/tests/travis/pdo/sqlite.phpunit.xml b/tests/travis/pdo/sqlite.phpunit.xml
index ae139b7..1871f62 100644
--- a/tests/travis/pdo/sqlite.phpunit.xml
+++ b/tests/travis/pdo/sqlite.phpunit.xml
@@ -10,7 +10,7 @@
 	stopOnIncomplete="false"
 	stopOnSkipped="false">
 	<php>
-        <const name="DB_DRIVER" value="sqlite"/>
+        <const name="DB_DRIVER" value="pdo/sqlite"/>
     </php>
 	<testsuites>
 		<testsuite name="CodeIgniter Core Test Suite">