From 12eb7512694113a90cf6264a578c0de8ba746fca Mon Sep 17 00:00:00 2001 From: David Engel Date: Tue, 12 May 2026 20:52:15 +0000 Subject: [PATCH 1/2] Lower LoginTimeout in tests against invalid servers to reduce test time --- test/functional/pdo_sqlsrv/PDO21_Connection.phpt | 2 +- test/functional/pdo_sqlsrv/pdo_azure_ad_managed_identity.phpt | 4 ++-- test/functional/pdo_sqlsrv/pdo_construct_attr_errors.phpt | 2 +- test/functional/sqlsrv/TC21_Connection.phpt | 2 +- test/functional/sqlsrv/sqlsrv_azure_ad_managed_identity.phpt | 2 +- test/functional/sqlsrv/sqlsrv_azure_ad_service_principal.phpt | 2 +- test/functional/sqlsrv/sqlsrv_connStr.phpt | 2 +- test/functional/sqlsrv/sqlsrv_errors.phpt | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/test/functional/pdo_sqlsrv/PDO21_Connection.phpt b/test/functional/pdo_sqlsrv/PDO21_Connection.phpt index 9498a3585..7fe927db6 100644 --- a/test/functional/pdo_sqlsrv/PDO21_Connection.phpt +++ b/test/functional/pdo_sqlsrv/PDO21_Connection.phpt @@ -15,7 +15,7 @@ try { // Invalid connection attempt => errors are expected $serverName="InvalidServerName"; - $dsn = getDSN($serverName, $databaseName, $driver); + $dsn = getDSN($serverName, $databaseName, $driver, 'LoginTimeout=1'); $conn1 = new PDO($dsn, $uid, $pwd, $connectionOptions); if ($conn1) { printf("Invalid connection attempt should have failed.\n"); diff --git a/test/functional/pdo_sqlsrv/pdo_azure_ad_managed_identity.phpt b/test/functional/pdo_sqlsrv/pdo_azure_ad_managed_identity.phpt index d9cac71d5..d75a94ac3 100644 --- a/test/functional/pdo_sqlsrv/pdo_azure_ad_managed_identity.phpt +++ b/test/functional/pdo_sqlsrv/pdo_azure_ad_managed_identity.phpt @@ -37,7 +37,7 @@ function connectInvalidServer() unset($conn); // Try connecting to an invalid server, should get an exception from ODBC - $connectionInfo = "Authentication = ActiveDirectoryMsi;"; + $connectionInfo = "Authentication = ActiveDirectoryMsi; LoginTimeout = 1;"; $testCase = 'invalidServer'; try { $conn = new PDO("sqlsrv:server = invalidServer; $connectionInfo", null, null); @@ -67,7 +67,7 @@ function connectInvalidServerWithUser() unset($conn); // Try connecting to an invalid server, should get an exception from ODBC - $connectionInfo = "Authentication = ActiveDirectoryMsi;"; + $connectionInfo = "Authentication = ActiveDirectoryMsi; LoginTimeout = 1;"; $user = "user"; $testCase = 'invalidServer'; try { diff --git a/test/functional/pdo_sqlsrv/pdo_construct_attr_errors.phpt b/test/functional/pdo_sqlsrv/pdo_construct_attr_errors.phpt index 58ca8e768..6e43f4ce0 100644 --- a/test/functional/pdo_sqlsrv/pdo_construct_attr_errors.phpt +++ b/test/functional/pdo_sqlsrv/pdo_construct_attr_errors.phpt @@ -34,7 +34,7 @@ function invalidServer() try { $options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION); $invalid = pack("H*", "ffc0"); - $conn = new PDO("sqlsrv:server = $invalid; Encrypt = $encrypt;", $uid, $pwd, $options); + $conn = new PDO("sqlsrv:server = $invalid; Encrypt = $encrypt; LoginTimeout = 1;", $uid, $pwd, $options); echo "Should have failed to connect to invalid server.\n"; } catch (PDOException $e) { $error1 = '*Login timeout expired'; diff --git a/test/functional/sqlsrv/TC21_Connection.phpt b/test/functional/sqlsrv/TC21_Connection.phpt index 9d9850621..702ddbdd2 100644 --- a/test/functional/sqlsrv/TC21_Connection.phpt +++ b/test/functional/sqlsrv/TC21_Connection.phpt @@ -19,7 +19,7 @@ function connectionTest() setup(); // Invalid connection attempt => errors are expected - $conn1 = sqlsrv_connect('InvalidServerName'); + $conn1 = sqlsrv_connect('InvalidServerName', array('LoginTimeout' => 1)); if ($conn1 === false) { handleErrors(); } else { diff --git a/test/functional/sqlsrv/sqlsrv_azure_ad_managed_identity.phpt b/test/functional/sqlsrv/sqlsrv_azure_ad_managed_identity.phpt index 171abcaa9..c3d6a358c 100644 --- a/test/functional/sqlsrv/sqlsrv_azure_ad_managed_identity.phpt +++ b/test/functional/sqlsrv/sqlsrv_azure_ad_managed_identity.phpt @@ -36,7 +36,7 @@ function connectInvalidServer() sqlsrv_close($conn); // Try connecting to an invalid server, should get an exception from ODBC - $connectionInfo = array("Authentication"=>"ActiveDirectoryMsi"); + $connectionInfo = array("Authentication"=>"ActiveDirectoryMsi", "LoginTimeout" => 1); $conn = sqlsrv_connect('invalidServer', $connectionInfo); if ($conn) { fatalError("AzureAD Managed Identity test: expected to fail with invalidServer\n"); diff --git a/test/functional/sqlsrv/sqlsrv_azure_ad_service_principal.phpt b/test/functional/sqlsrv/sqlsrv_azure_ad_service_principal.phpt index 9f0c37e04..3e2e3d488 100644 --- a/test/functional/sqlsrv/sqlsrv_azure_ad_service_principal.phpt +++ b/test/functional/sqlsrv/sqlsrv_azure_ad_service_principal.phpt @@ -89,7 +89,7 @@ function connectAzureDB($showException) } // Try connecting to an invalid server. Expect this to fail. -$connectionInfo = array("Authentication"=>"ActiveDirectoryServicePrincipal"); +$connectionInfo = array("Authentication"=>"ActiveDirectoryServicePrincipal", "LoginTimeout" => 1); $conn = sqlsrv_connect('invalidServer', $connectionInfo); if ($conn) { fatalError("AzureAD Service Principal test: expected to fail with invalidServer\n"); diff --git a/test/functional/sqlsrv/sqlsrv_connStr.phpt b/test/functional/sqlsrv/sqlsrv_connStr.phpt index d817c4b8d..6a9a2b56f 100644 --- a/test/functional/sqlsrv/sqlsrv_connStr.phpt +++ b/test/functional/sqlsrv/sqlsrv_connStr.phpt @@ -67,7 +67,7 @@ sqlsrv_close($c); // test an invalid server name in UTF-8 $server_invalid = pack("H*", "ffc0"); -$c = sqlsrv_connect($server_invalid, array( 'Database' => 'test', 'CharacterSet' => 'utf-8' )); +$c = sqlsrv_connect($server_invalid, array( 'Database' => 'test', 'CharacterSet' => 'utf-8', 'LoginTimeout' => 1 )); if ($c !== false) { fatalError("sqlsrv_connect(1) should have failed"); } diff --git a/test/functional/sqlsrv/sqlsrv_errors.phpt b/test/functional/sqlsrv/sqlsrv_errors.phpt index 7f2a4b11d..b61c0ca2c 100644 --- a/test/functional/sqlsrv/sqlsrv_errors.phpt +++ b/test/functional/sqlsrv/sqlsrv_errors.phpt @@ -34,7 +34,7 @@ sqlsrv_close returns true even if an error happens. require('MsCommon.inc'); - $conn = sqlsrv_connect("InvalidServerName", array( "Database" => "test" )); + $conn = sqlsrv_connect("InvalidServerName", array( "Database" => "test", "LoginTimeout" => 1 )); try { $result = sqlsrv_close($conn); if ($result !== false) { From e5fbee38c27e425b2e6f127c87971c7eaf9fb1ac Mon Sep 17 00:00:00 2001 From: David Engel Date: Fri, 15 May 2026 18:06:18 +0000 Subject: [PATCH 2/2] Slightly increase logintimeout --- test/functional/pdo_sqlsrv/pdo_azure_ad_managed_identity.phpt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/functional/pdo_sqlsrv/pdo_azure_ad_managed_identity.phpt b/test/functional/pdo_sqlsrv/pdo_azure_ad_managed_identity.phpt index d75a94ac3..97c705967 100644 --- a/test/functional/pdo_sqlsrv/pdo_azure_ad_managed_identity.phpt +++ b/test/functional/pdo_sqlsrv/pdo_azure_ad_managed_identity.phpt @@ -37,7 +37,7 @@ function connectInvalidServer() unset($conn); // Try connecting to an invalid server, should get an exception from ODBC - $connectionInfo = "Authentication = ActiveDirectoryMsi; LoginTimeout = 1;"; + $connectionInfo = "Authentication = ActiveDirectoryMsi; LoginTimeout = 3;"; $testCase = 'invalidServer'; try { $conn = new PDO("sqlsrv:server = invalidServer; $connectionInfo", null, null); @@ -67,7 +67,7 @@ function connectInvalidServerWithUser() unset($conn); // Try connecting to an invalid server, should get an exception from ODBC - $connectionInfo = "Authentication = ActiveDirectoryMsi; LoginTimeout = 1;"; + $connectionInfo = "Authentication = ActiveDirectoryMsi; LoginTimeout = 3;"; $user = "user"; $testCase = 'invalidServer'; try {