diff --git a/test/functional/sqlsrv/0065.phpt b/test/functional/sqlsrv/0065.phpt index a9678bbb..985b8e2b 100644 --- a/test/functional/sqlsrv/0065.phpt +++ b/test/functional/sqlsrv/0065.phpt @@ -78,8 +78,16 @@ if ($t === false) { die(print_r(sqlsrv_errors(), true)); } -if ($t != "So?e sä???? ?SCII-te×t") { - die("varchar(100) doesn't match So?e sä???? ?SCII-te×t"); +// If connected with AE, $t may be different in Windows and other platforms +// this is a workaround for now -- to make sure there are some '?' in $t +if (!AE\isColEncrypted() && $t !== "So?e sä???? ?SCII-te×t") { + die("varchar(100) \'$t\' doesn't match So?e sä???? ?SCII-te×t"); +} else { + $arr = explode('?', $t); + if (count($arr) == 1) { + // this means there is no question mark in $t + die("varchar(100) value \'$t\' is unexpected"); + } } $t = sqlsrv_get_field($s, 1, SQLSRV_PHPTYPE_STRING('utf-8')); @@ -87,7 +95,7 @@ if ($t === false) { die(print_r(sqlsrv_errors(), true)); } -if ($t != $utf8) { +if ($t !== $utf8) { die("nvarchar(100) doesn't match the inserted UTF-8 text."); } @@ -96,7 +104,7 @@ if ($t === false) { die(print_r(sqlsrv_errors(), true)); } -if ($t != $utf8) { +if ($t !== $utf8) { die("nvarchar(max) doesn't match the inserted UTF-8 text."); } @@ -129,7 +137,7 @@ if ($s === false) { die(print_r(sqlsrv_errors(), true)); } -if ($t != $utf8) { +if ($t !== $utf8) { die("Incorrect results from Utf8OutProc\n"); } @@ -148,7 +156,7 @@ if ($s === false) { // retrieve all the results while (sqlsrv_next_result($s)); -if ($t != $utf8) { +if ($t !== $utf8) { die("Incorrect results from Utf8OutWithResultsetProc\n"); } @@ -169,7 +177,7 @@ if ($s === false) { die(print_r(sqlsrv_errors(), true)); } -if ($t != $utf8) { +if ($t !== $utf8) { die("Incorrect results from Utf8InOutProc 1\n"); } diff --git a/test/functional/sqlsrv/MsCommon.inc b/test/functional/sqlsrv/MsCommon.inc index 117e9de4..12201417 100644 --- a/test/functional/sqlsrv/MsCommon.inc +++ b/test/functional/sqlsrv/MsCommon.inc @@ -452,6 +452,14 @@ function setUSAnsiLocale() } } +function resetLocaleToDefault() +{ + // Like setUSAnsiLocale() above, this method is only needed in non-Windows environment + if (!isWindows()) { + setlocale(LC_ALL, null); + } +} + // non-UTF8 locale support in ODBC 17 and above only // if AE enabled, only supported in Windows (AE limitations) function isLocaleSupported() diff --git a/test/functional/sqlsrv/TC34_PrepAndExec.phpt b/test/functional/sqlsrv/TC34_PrepAndExec.phpt index 1af83b51..3e4f5672 100644 --- a/test/functional/sqlsrv/TC34_PrepAndExec.phpt +++ b/test/functional/sqlsrv/TC34_PrepAndExec.phpt @@ -107,6 +107,7 @@ endTest($testName); startTest($testName); try { setUTF8Data(true); + resetLocaleToDefault(); prepareAndExecute(5); } catch (Exception $e) { echo $e->getMessage(); diff --git a/test/functional/sqlsrv/TC42_FetchField.phpt b/test/functional/sqlsrv/TC42_FetchField.phpt index f41102da..d605bcea 100644 --- a/test/functional/sqlsrv/TC42_FetchField.phpt +++ b/test/functional/sqlsrv/TC42_FetchField.phpt @@ -85,6 +85,7 @@ endTest($testName); startTest($testName); try { setUTF8Data(true); + resetLocaleToDefault(); fetchFields(); } catch (Exception $e) { echo $e->getMessage(); diff --git a/test/functional/sqlsrv/TC43_FetchData.phpt b/test/functional/sqlsrv/TC43_FetchData.phpt index adeec7d2..ffa3ce1c 100644 --- a/test/functional/sqlsrv/TC43_FetchData.phpt +++ b/test/functional/sqlsrv/TC43_FetchData.phpt @@ -115,6 +115,7 @@ endTest($testName); startTest($testName); try { setUTF8Data(true); + resetLocaleToDefault(); fetchFields(); } catch (Exception $e) { echo $e->getMessage(); diff --git a/test/functional/sqlsrv/TC44_FetchArray.phpt b/test/functional/sqlsrv/TC44_FetchArray.phpt index 217c6e1a..66e26c02 100644 --- a/test/functional/sqlsrv/TC44_FetchArray.phpt +++ b/test/functional/sqlsrv/TC44_FetchArray.phpt @@ -170,6 +170,7 @@ endTest($testName); startTest($testName); try { setUTF8Data(true); + resetLocaleToDefault(); fetchRow(1, 4); } catch (Exception $e) { echo $e->getMessage(); diff --git a/test/functional/sqlsrv/TC45_FetchObject.phpt b/test/functional/sqlsrv/TC45_FetchObject.phpt index dc138cb7..c93c9aa9 100644 --- a/test/functional/sqlsrv/TC45_FetchObject.phpt +++ b/test/functional/sqlsrv/TC45_FetchObject.phpt @@ -145,6 +145,7 @@ endTest($testName); startTest($testName); try { setUTF8Data(true); + resetLocaleToDefault(); fetchRow(0, 2); } catch (Exception $e) { echo $e->getMessage(); diff --git a/test/functional/sqlsrv/TC46_FetchNextResult.phpt b/test/functional/sqlsrv/TC46_FetchNextResult.phpt index 05f83552..0da23e5b 100644 --- a/test/functional/sqlsrv/TC46_FetchNextResult.phpt +++ b/test/functional/sqlsrv/TC46_FetchNextResult.phpt @@ -103,6 +103,7 @@ endTest($testName); startTest($testName); try { setUTF8Data(true); + resetLocaleToDefault(); fetchFields(); } catch (Exception $e) { echo $e->getMessage(); diff --git a/test/functional/sqlsrv/TC48_FetchScrollable.phpt b/test/functional/sqlsrv/TC48_FetchScrollable.phpt index 9019d03b..0b3df349 100644 --- a/test/functional/sqlsrv/TC48_FetchScrollable.phpt +++ b/test/functional/sqlsrv/TC48_FetchScrollable.phpt @@ -154,6 +154,7 @@ endTest($testName); startTest($testName); try { setUTF8Data(true); + resetLocaleToDefault(); fetchRow(10); } catch (Exception $e) { echo $e->getMessage(); diff --git a/test/functional/sqlsrv/TC51_StreamRead.phpt b/test/functional/sqlsrv/TC51_StreamRead.phpt index 5ac598a3..6412f458 100644 --- a/test/functional/sqlsrv/TC51_StreamRead.phpt +++ b/test/functional/sqlsrv/TC51_StreamRead.phpt @@ -148,6 +148,7 @@ endTest($testName); startTest($testName); try { setUTF8Data(true); + resetLocaleToDefault(); streamRead(20, 1); } catch (Exception $e) { echo $e->getMessage(); diff --git a/test/functional/sqlsrv/TC55_StreamScrollable.phpt b/test/functional/sqlsrv/TC55_StreamScrollable.phpt index 0965c6d0..c3127efa 100644 --- a/test/functional/sqlsrv/TC55_StreamScrollable.phpt +++ b/test/functional/sqlsrv/TC55_StreamScrollable.phpt @@ -184,6 +184,7 @@ endTest($testName); startTest($testName); try { setUTF8Data(true); + resetLocaleToDefault(); streamScroll(20, 1); } catch (Exception $e) { echo $e->getMessage(); diff --git a/test/functional/sqlsrv/test_stream_large_data.phpt b/test/functional/sqlsrv/test_stream_large_data.phpt index b7db404a..909e3e69 100644 --- a/test/functional/sqlsrv/test_stream_large_data.phpt +++ b/test/functional/sqlsrv/test_stream_large_data.phpt @@ -264,6 +264,7 @@ else { // test utf8 setUTF8Data(true); +resetLocaleToDefault(); runtest(); ?>