Skip to content

Commit

Permalink
Streamlined two very similar large column name tests (#807)
Browse files Browse the repository at this point in the history
* Streamlined two very similar large column name tests

* Changed the EOL
  • Loading branch information
yitam authored Jul 3, 2018
1 parent aef3830 commit 5aa9be7
Show file tree
Hide file tree
Showing 2 changed files with 81 additions and 79 deletions.
95 changes: 48 additions & 47 deletions test/functional/pdo_sqlsrv/PDO101_LargeColumnName.phpt
Original file line number Diff line number Diff line change
@@ -1,76 +1,77 @@
--TEST--
PDO - Large Column Name Test
--DESCRIPTION--
Verifies that long column names are supported (up to 128 chars).
--ENV--
PHPT_EXEC=true
--SKIPIF--
<?php require('skipif.inc'); ?>
--FILE--
--TEST--
PDO - Large Column Name Test
--DESCRIPTION--
Verifies that long column names are supported (up to 128 chars).
--ENV--
PHPT_EXEC=true
--SKIPIF--
<?php require('skipif.inc'); ?>
--FILE--
<?php

include 'MsCommon.inc';
require_once('MsCommon.inc');

function LargeColumnNameTest($columnName, $expectfail)
function largeColumnNameTest($columnName)
{
include 'MsSetup.inc';

Setup();

$conn = Connect();
$conn = connect();

$tableName = "LargeColumnNameTest";
$tableName = "largeColumnNameTest";

DropTable($conn, $tableName);
dropTable($conn, $tableName);

$conn->query("CREATE TABLE [$tableName] ([$columnName] int)");


$conn->query("INSERT INTO [$tableName] ([$columnName]) VALUES (5)");

$stmt = $conn->query("SELECT * from [$tableName]");

if ( null == $stmt )
{
if (!$expectfail)
FatalError("Possible regression: Unable to retrieve inserted value.");
}

DropTable($conn, $tableName);

dropTable($conn, $tableName);
}


//--------------------------------------------------------------------
// Repro
// repro
//
//--------------------------------------------------------------------
function Repro()
function repro()
{

$testName = "PDO - Large Column Name Test";

StartTest($testName);

$columnName = "a";

try
{
for ($a = 1; $a <= 128; $a++)
{
LargeColumnNameTest($columnName, $a > 128);
$columnName .= "A";
}
}
catch (Exception $e)
{
echo $e->getMessage();
startTest($testName);

// The maximum size of a column name is 128 characters
$maxlen = 128;
$columnName = str_repeat('A', $maxlen);

try {
largeColumnNameTest($columnName);
} catch (Exception $e) {
echo "Possible regression: Unable to retrieve inserted value\n";
print_r($e->getMessage());
echo "\n";
}

EndTest($testName);

// 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);
}

Repro();
?>
--EXPECT--
Test "PDO - Large Column Name Test" completed successfully.
repro();
?>
--EXPECT--
Test "PDO - Large Column Name Test" completed successfully.
Original file line number Diff line number Diff line change
Expand Up @@ -8,69 +8,70 @@ PHPT_EXEC=true
<?php require('skipif.inc'); ?>
--FILE--
<?php
require_once('MsCommon.inc');

include 'MsCommon.inc';

function LargeColumnNameTest($columnName, $expectfail)
function largeColumnNameTest($columnName)
{
include 'MsSetup.inc';

Setup();

$conn = Connect();
$conn = connect();

$tableName = "LargeColumnNameTest";
$tableName = "largeColumnNameTest";

DropTable($conn, $tableName);
dropTable($conn, $tableName);

$conn->query("CREATE TABLE [$tableName] ([$columnName] int)");


$conn->query("INSERT INTO [$tableName] ([$columnName]) VALUES (5)");

$stmt = $conn->query("SELECT * from [$tableName]");

if ( null == $stmt )
{
if (!$expectfail)
FatalError("Possible regression: Unable to retrieve inserted value.");
}

DropTable($conn, $tableName);

dropTable($conn, $tableName);
}


//--------------------------------------------------------------------
// Repro
// repro
//
//--------------------------------------------------------------------
function Repro()
function repro()
{

$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
{
for ($a = 1; $a <= 128; $a++)
{
LargeColumnNameTest($columnName, $a > 128);
$columnName .= "";
}
try {
largeColumnNameTest($columnName);
} catch (Exception $e) {
echo "Possible regression: Unable to retrieve inserted value\n";
print_r($e->getMessage());
echo "\n";
}
catch (Exception $e)
{
echo $e->getMessage();

// 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";
}
}

EndTest($testName);
endTest($testName);
}

Repro();
repro();

?>
--EXPECT--
Test "PDO - Large Column Name Test" completed successfully.

0 comments on commit 5aa9be7

Please sign in to comment.