Streamlined two very similar large column name tests (#807)

* Streamlined two very similar large column name tests

* Changed the EOL
This commit is contained in:
Jenny Tam 2018-07-03 16:47:14 -07:00 committed by GitHub
parent aef3830479
commit 5aa9be7e13
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 79 additions and 77 deletions

View file

@ -1,76 +1,77 @@
--TEST-- --TEST--
PDO - Large Column Name Test PDO - Large Column Name Test
--DESCRIPTION-- --DESCRIPTION--
Verifies that long column names are supported (up to 128 chars). Verifies that long column names are supported (up to 128 chars).
--ENV-- --ENV--
PHPT_EXEC=true PHPT_EXEC=true
--SKIPIF-- --SKIPIF--
<?php require('skipif.inc'); ?> <?php require('skipif.inc'); ?>
--FILE-- --FILE--
<?php <?php
include 'MsCommon.inc'; require_once('MsCommon.inc');
function LargeColumnNameTest($columnName, $expectfail) function largeColumnNameTest($columnName)
{ {
include 'MsSetup.inc'; include 'MsSetup.inc';
Setup(); Setup();
$conn = Connect(); $conn = connect();
$tableName = "LargeColumnNameTest"; $tableName = "largeColumnNameTest";
DropTable($conn, $tableName); dropTable($conn, $tableName);
$conn->query("CREATE TABLE [$tableName] ([$columnName] int)"); $conn->query("CREATE TABLE [$tableName] ([$columnName] int)");
$conn->query("INSERT INTO [$tableName] ([$columnName]) VALUES (5)"); $conn->query("INSERT INTO [$tableName] ([$columnName]) VALUES (5)");
$stmt = $conn->query("SELECT * from [$tableName]"); $stmt = $conn->query("SELECT * from [$tableName]");
if ( null == $stmt ) dropTable($conn, $tableName);
{
if (!$expectfail)
FatalError("Possible regression: Unable to retrieve inserted value.");
}
DropTable($conn, $tableName);
} }
//-------------------------------------------------------------------- //--------------------------------------------------------------------
// Repro // repro
// //
//-------------------------------------------------------------------- //--------------------------------------------------------------------
function Repro() function repro()
{ {
$testName = "PDO - Large Column Name Test"; $testName = "PDO - Large Column Name Test";
StartTest($testName); startTest($testName);
// The maximum size of a column name is 128 characters
$maxlen = 128;
$columnName = str_repeat('A', $maxlen);
$columnName = "a"; try {
largeColumnNameTest($columnName);
try } catch (Exception $e) {
{ echo "Possible regression: Unable to retrieve inserted value\n";
for ($a = 1; $a <= 128; $a++) print_r($e->getMessage());
{ echo "\n";
LargeColumnNameTest($columnName, $a > 128);
$columnName .= "A";
}
}
catch (Exception $e)
{
echo $e->getMessage();
} }
// Now add another character to the name
$columnName .= 'A';
try {
largeColumnNameTest($columnName);
} catch (Exception $e) {
// Expects to fail
$expected = 'is too long. Maximum length is 128.';
if (strpos($e->getMessage(), $expected) === false) {
print_r($e->getMessage());
echo "\n";
}
}
EndTest($testName); endTest($testName);
} }
Repro(); repro();
?> ?>
--EXPECT-- --EXPECT--
Test "PDO - Large Column Name Test" completed successfully. Test "PDO - Large Column Name Test" completed successfully.

View file

@ -8,69 +8,70 @@ PHPT_EXEC=true
<?php require('skipif.inc'); ?> <?php require('skipif.inc'); ?>
--FILE-- --FILE--
<?php <?php
require_once('MsCommon.inc');
include 'MsCommon.inc'; function largeColumnNameTest($columnName)
function LargeColumnNameTest($columnName, $expectfail)
{ {
include 'MsSetup.inc'; include 'MsSetup.inc';
Setup(); Setup();
$conn = Connect(); $conn = connect();
$tableName = "LargeColumnNameTest"; $tableName = "largeColumnNameTest";
DropTable($conn, $tableName); dropTable($conn, $tableName);
$conn->query("CREATE TABLE [$tableName] ([$columnName] int)"); $conn->query("CREATE TABLE [$tableName] ([$columnName] int)");
$conn->query("INSERT INTO [$tableName] ([$columnName]) VALUES (5)"); $conn->query("INSERT INTO [$tableName] ([$columnName]) VALUES (5)");
$stmt = $conn->query("SELECT * from [$tableName]"); $stmt = $conn->query("SELECT * from [$tableName]");
if ( null == $stmt ) dropTable($conn, $tableName);
{
if (!$expectfail)
FatalError("Possible regression: Unable to retrieve inserted value.");
}
DropTable($conn, $tableName);
} }
//-------------------------------------------------------------------- //--------------------------------------------------------------------
// Repro // repro
// //
//-------------------------------------------------------------------- //--------------------------------------------------------------------
function Repro() function repro()
{ {
$testName = "PDO - Large Column Name Test"; $testName = "PDO - Large Column Name Test";
StartTest($testName); startTest($testName);
$columnName = "是"; // The maximum size of a column name is 128 characters
$maxlen = 128;
$columnName = str_repeat('是', $maxlen);
try try {
{ largeColumnNameTest($columnName);
for ($a = 1; $a <= 128; $a++) } catch (Exception $e) {
{ echo "Possible regression: Unable to retrieve inserted value\n";
LargeColumnNameTest($columnName, $a > 128); print_r($e->getMessage());
$columnName .= "是"; echo "\n";
}
// Now add another character to the name
$columnName .= '是';
try {
largeColumnNameTest($columnName);
} catch (Exception $e) {
// Expects to fail
$expected = 'is too long. Maximum length is 128.';
if (strpos($e->getMessage(), $expected) === false) {
print_r($e->getMessage());
echo "\n";
} }
} }
catch (Exception $e)
{
echo $e->getMessage();
}
EndTest($testName); endTest($testName);
} }
Repro(); repro();
?> ?>
--EXPECT-- --EXPECT--
Test "PDO - Large Column Name Test" completed successfully. Test "PDO - Large Column Name Test" completed successfully.