/
vshmidt
/
php
Обзор
Документация
Войти
/
vshmidt
/
php
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
ext/pdo_odbc/tests/basic_connection.phpt
83 строки
2 KB
Saki Takamachi
Add XLEAK for some msodbcsql tests (#12615)
07 ноя 2023, 20:11
Не верифицирован
07 ноя 2023, 20:11
61c251d
Код
Авторство
О чём код?
--TEST-- Basic test for connection. (When not using a DSN alias) --EXTENSIONS-- pdo_odbc --SKIPIF-- <?php require 'ext/pdo/tests/pdo_test.inc'; PDOTest::skip(); $dsn = getenv('PDO_ODBC_TEST_DSN'); if (!$dsn || strpos($dsn, '=') === false) { die('skip'); } ?> --XLEAK-- A bug in msodbcsql causes a memory leak when reconnecting after closing. See GH-12306 --FILE-- <?php $dsnWithCredentials = getenv('PDO_ODBC_TEST_DSN'); $user = getenv('PDO_ODBC_TEST_USER'); $password = getenv('PDO_ODBC_TEST_PASS'); $dsn = str_replace(";uid={$user};pwd={$password}", '', $dsnWithCredentials); echo "dsn without credentials / correct user / correct password\n"; try { $db = new PDO($dsn, $user, $password, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]); echo "Connected.\n\n"; $db = null; } catch (PDOException $e) { echo $e->getMessage()."\n"; } echo "dsn with credentials / no user / no password\n"; try { $db = new PDO("{$dsn};uid={$user};pwd={$password}", null, null, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]); echo "Connected.\n\n"; $db = null; } catch (PDOException $e) { echo $e->getMessage()."\n"; } echo "dsn with correct user / incorrect user / correct password\n"; try { $db = new PDO("{$dsn};UID={$user}", 'hoge', $password, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]); echo "Connected.\n\n"; $db = null; } catch (PDOException $e) { echo $e->getMessage()."\n"; } echo "dsn with correct password / correct user / incorrect password\n"; try { $db = new PDO("{$dsn};PWD={$password}", $user, 'fuga', [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]); echo "Connected.\n\n"; $db = null; } catch (PDOException $e) { echo $e->getMessage()."\n"; } echo "dsn with correct credentials / incorrect user / incorrect password\n"; try { $db = new PDO("{$dsn};Uid={$user};Pwd={$password}", 'hoge', 'fuga', [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]); echo "Connected.\n"; $db = null; } catch (PDOException $e) { echo $e->getMessage()."\n"; } ?> --EXPECT-- dsn without credentials / correct user / correct password Connected. dsn with credentials / no user / no password Connected. dsn with correct user / incorrect user / correct password Connected. dsn with correct password / correct user / incorrect password Connected. dsn with correct credentials / incorrect user / incorrect password Connected.