Merge pull request #656 from yitam/localeUTF8

Modify tests related to locale testing
This commit is contained in:
Jenny Tam 2018-01-04 16:10:41 -08:00 committed by GitHub
commit a77f9bd4a8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 33 additions and 7 deletions

View file

@ -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");
}

View file

@ -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()

View file

@ -107,6 +107,7 @@ endTest($testName);
startTest($testName);
try {
setUTF8Data(true);
resetLocaleToDefault();
prepareAndExecute(5);
} catch (Exception $e) {
echo $e->getMessage();

View file

@ -85,6 +85,7 @@ endTest($testName);
startTest($testName);
try {
setUTF8Data(true);
resetLocaleToDefault();
fetchFields();
} catch (Exception $e) {
echo $e->getMessage();

View file

@ -115,6 +115,7 @@ endTest($testName);
startTest($testName);
try {
setUTF8Data(true);
resetLocaleToDefault();
fetchFields();
} catch (Exception $e) {
echo $e->getMessage();

View file

@ -170,6 +170,7 @@ endTest($testName);
startTest($testName);
try {
setUTF8Data(true);
resetLocaleToDefault();
fetchRow(1, 4);
} catch (Exception $e) {
echo $e->getMessage();

View file

@ -145,6 +145,7 @@ endTest($testName);
startTest($testName);
try {
setUTF8Data(true);
resetLocaleToDefault();
fetchRow(0, 2);
} catch (Exception $e) {
echo $e->getMessage();

View file

@ -103,6 +103,7 @@ endTest($testName);
startTest($testName);
try {
setUTF8Data(true);
resetLocaleToDefault();
fetchFields();
} catch (Exception $e) {
echo $e->getMessage();

View file

@ -154,6 +154,7 @@ endTest($testName);
startTest($testName);
try {
setUTF8Data(true);
resetLocaleToDefault();
fetchRow(10);
} catch (Exception $e) {
echo $e->getMessage();

View file

@ -148,6 +148,7 @@ endTest($testName);
startTest($testName);
try {
setUTF8Data(true);
resetLocaleToDefault();
streamRead(20, 1);
} catch (Exception $e) {
echo $e->getMessage();

View file

@ -184,6 +184,7 @@ endTest($testName);
startTest($testName);
try {
setUTF8Data(true);
resetLocaleToDefault();
streamScroll(20, 1);
} catch (Exception $e) {
echo $e->getMessage();

View file

@ -264,6 +264,7 @@ else {
// test utf8
setUTF8Data(true);
resetLocaleToDefault();
runtest();
?>