Annotation of embedaddon/php/ext/pdo_odbc/tests/common.phpt, revision 1.1.1.2

1.1       misho       1: --TEST--
                      2: ODBC
                      3: --SKIPIF--
                      4: <?php # vim:ft=php
1.1.1.2 ! misho       5: if (!extension_loaded('pdo_odbc')) print 'skip';
        !             6: if (substr(PHP_OS, 0, 3) == 'WIN' &&
        !             7:        false === getenv('PDOTEST_DSN') &&
        !             8:        false === getenv('PDO_ODBC_TEST_DSN') &&
        !             9:        !extension_loaded('com_dotnet')) {
        !            10:        die('skip - either PDOTEST_DSN or com_dotnet extension is needed to setup the connection');
        !            11: }
1.1       misho      12: --REDIRECTTEST--
                     13: # magic auto-configuration
                     14: 
                     15: $config = array(
1.1.1.2 ! misho      16:        'TESTS' => 'ext/pdo/tests',
        !            17:        'ENV' => array()
1.1       misho      18: );
                     19:        
1.1.1.2 ! misho      20: // try loading PDO driver using ENV vars and if none given, and on Windows, try using MS Access
        !            21: // and if not, skip the test
        !            22: //
        !            23: // try to use common PDO env vars, instead of PDO_ODBC specific
        !            24: if (false !== getenv('PDOTEST_DSN')) {
        !            25:        // user should have to set PDOTEST_DSN so that:
        !            26:        // 1. test is skipped if user doesn't want to test it, even if they have MS Access installed
        !            27:        // 2. it detects if ODBC driver is not installed - to avoid test bug
        !            28:        // 3. it detects if ODBC driver is installed - so test will be run
        !            29:        // 4. so a specific ODBC driver can be tested - if system has multiple ODBC drivers
        !            30:        
        !            31:        $config['ENV']['PDOTEST_DSN'] = getenv('PDOTEST_DSN');
        !            32:        $config['ENV']['PDOTEST_USER'] = getenv('PDOTEST_USER');
        !            33:        $config['ENV']['PDOTEST_PASS'] = getenv('PDOTEST_PASS');
        !            34:        if (false !== getenv('PDOTEST_ATTR')) {
        !            35:                $config['ENV']['PDOTEST_ATTR'] = getenv('PDOTEST_ATTR');
        !            36:        }
        !            37: } else if (false !== getenv('PDO_ODBC_TEST_DSN')) {
        !            38:        // user set these from their shell instead
1.1       misho      39:        $config['ENV']['PDOTEST_DSN'] = getenv('PDO_ODBC_TEST_DSN');
                     40:        $config['ENV']['PDOTEST_USER'] = getenv('PDO_ODBC_TEST_USER');
                     41:        $config['ENV']['PDOTEST_PASS'] = getenv('PDO_ODBC_TEST_PASS');
                     42:        if (false !== getenv('PDO_ODBC_TEST_ATTR')) {
                     43:                $config['ENV']['PDOTEST_ATTR'] = getenv('PDO_ODBC_TEST_ATTR');
                     44:        }
                     45: } elseif (preg_match('/^WIN/i', PHP_OS)) {
1.1.1.2 ! misho      46:        // on Windows and user didn't set PDOTEST_DSN, try this as a fallback:
        !            47:        // check if MS Access DB is installed, and if yes, try using it. create a temporary MS access database.
        !            48:        //
1.1       misho      49:        $path = realpath(dirname(__FILE__)) . '\pdo_odbc.mdb';
                     50:        if (!file_exists($path)) {
                     51:                try {
1.1.1.2 ! misho      52:                        // try to create database
1.1       misho      53:                        $adox = new COM('ADOX.Catalog');
                     54:                        $adox->Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' . $path);
                     55:                        $adox = null;
                     56:        
                     57:                } catch (Exception $e) {
                     58:                }
                     59:        }
                     60:        if (file_exists($path)) {
1.1.1.2 ! misho      61:                // database was created and written to file system
1.1       misho      62:                $config['ENV']['PDOTEST_DSN'] = "odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=$path;Uid=Admin";
1.1.1.2 ! misho      63:        } // else: $config['ENV']['PDOTEST_DSN'] not set
        !            64: } // else: $config['ENV']['PDOTEST_DSN'] not set
        !            65: //         test will be skipped. see SKIPIF section of long_columns.phpt
        !            66: 
1.1       misho      67: # other magic autodetection here, eg: for DB2 by inspecting env
                     68: /*
                     69: $USER = 'db2inst1';
                     70: $PASSWD = 'ibmdb2';
                     71: $DBNAME = 'SAMPLE';
                     72: 
                     73: $CONNECTION = "odbc:DSN=$DBNAME;UID=$USER;PWD=$PASSWD;";
                     74: */
                     75: 
                     76:        
                     77: return $config;

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>