Applied changes to the tests based on review
This commit is contained in:
parent
cf9e54fb74
commit
5a270e2d57
|
@ -10,10 +10,9 @@ require_once('MsCommon.inc');
|
|||
|
||||
function runTest($fieldType)
|
||||
{
|
||||
prepareParams($params);
|
||||
|
||||
// change the input field type for each run
|
||||
$params['fieldType'] = $fieldType;
|
||||
prepareParams($params, $fieldType);
|
||||
|
||||
$conn = AE\connect();
|
||||
|
||||
$originalStream = populateTestTable($conn, $params);
|
||||
|
@ -46,7 +45,7 @@ function runTest($fieldType)
|
|||
}
|
||||
|
||||
runTest("varchar(max)");
|
||||
runTest("varbinary(max)");
|
||||
// runTest("varbinary(max)");
|
||||
runTest("nvarchar(max)");
|
||||
|
||||
echo "Test successful.\n";
|
||||
|
@ -57,8 +56,8 @@ function populateTestTable($conn, $params)
|
|||
$colName = $params['columnName'];
|
||||
$fieldType = $params['fieldType'];
|
||||
|
||||
// Create a test table of a column of type 'nvarchar(MAX)'
|
||||
$columns = array(new AE\ColumnMeta('nvarchar(MAX)', $colName));
|
||||
// Create a test table of a single column of a certain field type
|
||||
$columns = array(new AE\ColumnMeta($fieldType, $colName));
|
||||
$stmt = AE\createTable($conn, $tblName, $columns);
|
||||
if (!$stmt) {
|
||||
fatalError("Failed to create table $tblName\n");
|
||||
|
@ -94,18 +93,17 @@ function populateTestTable($conn, $params)
|
|||
return fopen($params['testImageURL'], "rb");
|
||||
}
|
||||
|
||||
function prepareParams(&$arr)
|
||||
function prepareParams(&$arr, $fieldType)
|
||||
{
|
||||
if (IsWindows()) {
|
||||
if (isWindows()) {
|
||||
$phpgif = '\\php.gif';
|
||||
} else {
|
||||
$phpgif = '/php.gif';
|
||||
}
|
||||
|
||||
// the test table always has a column of type 'nvarchar(MAX)'
|
||||
|
||||
$arr['tableName'] = $tblName = "B64TestTable";
|
||||
$arr['columnName'] = $colName = "Base64Image";
|
||||
$arr['fieldType'] = $fieldType = "nvarchar(MAX)";
|
||||
$arr['fieldType'] = $fieldType;
|
||||
$arr['insertQuery'] = "INSERT INTO $tblName ($colName) VALUES (?)";
|
||||
$arr['selectQuery'] = "SELECT TOP 1 $colName FROM $tblName";
|
||||
$arr['testImageURL'] = dirname($_SERVER['PHP_SELF']) . $phpgif; // use this when no http access
|
||||
|
|
|
@ -12,12 +12,13 @@ sqlsrv_configure('LogSeverity', SQLSRV_LOG_SEVERITY_ALL);
|
|||
require_once('MsCommon.inc');
|
||||
$c = AE\connect();
|
||||
|
||||
$tableName = 'utf8test';
|
||||
$columns = array(new AE\ColumnMeta('varchar(100)', 'c1'),
|
||||
new AE\ColumnMeta('nvarchar(100)', 'c2'),
|
||||
new AE\ColumnMeta('nvarchar(max)', 'c3'));
|
||||
$stmt = AE\createTable($c, "utf8test", $columns);
|
||||
$stmt = AE\createTable($c, $tableName, $columns);
|
||||
if (!$stmt) {
|
||||
fatalError("Failed to create table 'utf8test'\n");
|
||||
fatalError("Failed to create table $tableName\n");
|
||||
}
|
||||
|
||||
$utf8 = "Şơмė śäოрŀề ΆŚĈĨİ-ť℮×ŧ";
|
||||
|
@ -25,17 +26,12 @@ $utf8 = "Şơмė śäოрŀề ΆŚĈĨİ-ť℮×ŧ";
|
|||
$params = array(array(&$utf8, SQLSRV_PARAM_IN, SQLSRV_PHPTYPE_STRING('utf-8')),
|
||||
array(&$utf8, SQLSRV_PARAM_IN, SQLSRV_PHPTYPE_STRING('utf-8')),
|
||||
array(&$utf8, SQLSRV_PARAM_IN, SQLSRV_PHPTYPE_STRING('utf-8')));
|
||||
$insertSql = "INSERT INTO utf8test (c1, c2, c3) VALUES (?,?,?)";
|
||||
$insertSql = "INSERT INTO $tableName (c1, c2, c3) VALUES (?,?,?)";
|
||||
$s = AE\executeQueryParams($c, $insertSql, $params);
|
||||
|
||||
$s = sqlsrv_query(
|
||||
$c,
|
||||
"DROP PROCEDURE IntDoubleProc;
|
||||
DROP PROCEDURE Utf8OutProc;
|
||||
DROP PROCEDURE Utf8OutWithResultsetProc;
|
||||
DROP PROCEDURE Utf8InOutProc;
|
||||
DROP TABLE Utf8TestTable;"
|
||||
);
|
||||
$query = "DROP PROCEDURE IntDoubleProc; DROP PROCEDURE Utf8OutProc; DROP PROCEDURE Utf8OutWithResultsetProc; DROP PROCEDURE Utf8InOutProc; DROP TABLE Utf8TestTable;";
|
||||
|
||||
$s = sqlsrv_query($c, $query);
|
||||
|
||||
$create_proc = <<<PROC
|
||||
CREATE PROCEDURE Utf8OutProc
|
||||
|
@ -50,48 +46,25 @@ if ($s === false) {
|
|||
die(print_r(sqlsrv_errors(), true));
|
||||
}
|
||||
|
||||
$create_proc = <<<PROC
|
||||
CREATE PROCEDURE Utf8OutWithResultsetProc
|
||||
@param nvarchar(25) output
|
||||
AS
|
||||
BEGIN
|
||||
select c1, c2, c3 from utf8test
|
||||
set @param = convert(nvarchar(25), 0x5E01A1013C04170120005B01E400DD1040044001C11E200086035A010801280130012D0065012E21D7006701);
|
||||
END;
|
||||
PROC;
|
||||
$s = sqlsrv_query($c, $create_proc);
|
||||
$createProc = "CREATE PROCEDURE Utf8OutWithResultsetProc @param NVARCHAR(25) OUTPUT AS BEGIN SELECT c1, c2, c3 FROM $tableName SET @param = CONVERT(NVARCHAR(25), 0x5E01A1013C04170120005B01E400DD1040044001C11E200086035A010801280130012D0065012E21D7006701); END";
|
||||
$s = sqlsrv_query($c, $createProc);
|
||||
if ($s === false) {
|
||||
die(print_r(sqlsrv_errors(), true));
|
||||
}
|
||||
|
||||
$create_proc = <<<PROC
|
||||
CREATE PROCEDURE Utf8InOutProc
|
||||
@param nvarchar(25) output
|
||||
AS
|
||||
BEGIN
|
||||
-- INSERT INTO utf8test (c1, c2, c3) VALUES (@param, @param, @param);
|
||||
set @param = convert(nvarchar(25), 0x6001E11EDD10130120006101E200DD1040043A01BB1E2000C5005A01C700CF0007042D006501BF1E45046301);
|
||||
END;
|
||||
PROC;
|
||||
$s = sqlsrv_query($c, $create_proc);
|
||||
$createProc = "CREATE PROCEDURE Utf8InOutProc @param NVARCHAR(25) OUTPUT AS BEGIN SET @param = CONVERT(NVARCHAR(25), 0x6001E11EDD10130120006101E200DD1040043A01BB1E2000C5005A01C700CF0007042D006501BF1E45046301); END";
|
||||
$s = sqlsrv_query($c, $createProc);
|
||||
if ($s === false) {
|
||||
die(print_r(sqlsrv_errors(), true));
|
||||
}
|
||||
|
||||
$create_proc = <<<PROC
|
||||
CREATE PROCEDURE IntDoubleProc
|
||||
@param int output
|
||||
AS
|
||||
BEGIN
|
||||
set @param = @param + @param;
|
||||
END;
|
||||
PROC;
|
||||
$s = sqlsrv_query($c, $create_proc);
|
||||
$createProc = "CREATE PROCEDURE IntDoubleProc @param INT OUTPUT AS BEGIN SET @param = @param + @param; END;";
|
||||
$s = sqlsrv_query($c, $createProc);
|
||||
if ($s === false) {
|
||||
die(print_r(sqlsrv_errors(), true));
|
||||
}
|
||||
|
||||
$s = sqlsrv_query($c, 'SELECT c1, c2, c3 FROM utf8test');
|
||||
$s = sqlsrv_query($c, "SELECT c1, c2, c3 FROM $tableName");
|
||||
if ($s === false) {
|
||||
die(print_r(sqlsrv_errors(), true));
|
||||
}
|
||||
|
@ -219,12 +192,12 @@ $t = pack('H*', '7a61cc86c7bdceb2f18fb3bf');
|
|||
$params = array(array(&$t, SQLSRV_PARAM_IN, SQLSRV_PHPTYPE_STRING('utf-8')),
|
||||
array(&$t, SQLSRV_PARAM_IN, SQLSRV_PHPTYPE_STRING('utf-8')),
|
||||
array(&$t, SQLSRV_PARAM_IN, SQLSRV_PHPTYPE_STRING('utf-8')));
|
||||
$insertSql = "INSERT INTO utf8test (c1, c2, c3) VALUES (?,?,?)";
|
||||
$insertSql = "INSERT INTO $tableName (c1, c2, c3) VALUES (?,?,?)";
|
||||
$s = AE\executeQueryParams($c, $insertSql, $params);
|
||||
|
||||
print_r(sqlsrv_errors());
|
||||
|
||||
$s = sqlsrv_query($c, 'SELECT c1, c2, c3 FROM utf8test');
|
||||
$s = sqlsrv_query($c, "SELECT c1, c2, c3 FROM $tableName");
|
||||
if ($s === false) {
|
||||
die(print_r(sqlsrv_errors(), true));
|
||||
}
|
||||
|
@ -253,7 +226,7 @@ $params = array(array(&$t, SQLSRV_PARAM_IN, SQLSRV_PHPTYPE_STRING('utf-8')));
|
|||
$query = "{call IntDoubleProc(?)}";
|
||||
$s = AE\executeQueryParams($c, $query, $params, true, "no error from an invalid utf-8 string");
|
||||
|
||||
dropTable($c, 'utf8test');
|
||||
dropTable($c, $tableName);
|
||||
|
||||
sqlsrv_close($c);
|
||||
|
||||
|
|
|
@ -269,13 +269,9 @@ function createUniqueIndexEx($conn, $tableName, $tableIndex, $colIndex)
|
|||
trace(" completed successfully.\n");
|
||||
}
|
||||
|
||||
function dropTable($conn, $tableName, $check = false)
|
||||
function dropTable($conn, $tableName)
|
||||
{
|
||||
if ($check) {
|
||||
$stmt = sqlsrv_query($conn, "IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'" . $tableName . "') AND type in (N'U')) DROP TABLE [$tableName]");
|
||||
} else {
|
||||
$stmt = sqlsrv_query($conn, "DROP TABLE [$tableName]");
|
||||
}
|
||||
$stmt = sqlsrv_query($conn, "IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'" . $tableName . "') AND type in (N'U')) DROP TABLE [$tableName]");
|
||||
if ($stmt === false) {
|
||||
} else {
|
||||
sqlsrv_free_stmt($stmt);
|
||||
|
|
|
@ -396,7 +396,7 @@ function connect($options = array(), $disableCE = false)
|
|||
function createTable($conn, $tbname, $columnMetaArr)
|
||||
{
|
||||
require_once("MsCommon.inc");
|
||||
dropTable($conn, $tbname, true);
|
||||
dropTable($conn, $tbname);
|
||||
$colDef = "";
|
||||
foreach ($columnMetaArr as $meta) {
|
||||
$colDef = $colDef . $meta->getColDef() . ", ";
|
||||
|
|
|
@ -27,20 +27,11 @@ function insertTest($conn, $tableName, $inputs, $query)
|
|||
foreach ($inputs as $key => $input) {
|
||||
array_push($params, $inputs[$key]);
|
||||
}
|
||||
if (! is_null($query)) {
|
||||
// this contains a batch of sql statements,
|
||||
// with set identity_insert on or off
|
||||
// thus, sqlsrv_query should be called
|
||||
$sql = str_replace("SQL", $insertSql, $query);
|
||||
$stmt = sqlsrv_query($conn, $sql, $params);
|
||||
} else {
|
||||
// just a regular insert, so use sqlsrv_prepare
|
||||
$sql = $insertSql;
|
||||
$stmt = sqlsrv_prepare($conn, $sql, $params);
|
||||
if ($stmt) {
|
||||
sqlsrv_execute($stmt);
|
||||
}
|
||||
}
|
||||
// this contains a batch of sql statements,
|
||||
// with set identity_insert on or off
|
||||
// thus, sqlsrv_query should be called
|
||||
$sql = str_replace("SQL", $insertSql, $query);
|
||||
$stmt = sqlsrv_query($conn, $sql, $params);
|
||||
}
|
||||
|
||||
return $stmt;
|
||||
|
|
|
@ -44,7 +44,7 @@ Fetch data from a prepopulated test table given a custom keystore provider
|
|||
sqlsrv_configure('WarningsReturnAsErrors', 1);
|
||||
sqlsrv_configure('LogSeverity', SQLSRV_LOG_SEVERITY_ALL);
|
||||
|
||||
require_once('MsHelper.inc');
|
||||
require_once('MsCommon.inc');
|
||||
$conn = AE\connect(array('ReturnDatesAsStrings'=>true));
|
||||
if ($conn !== false) {
|
||||
echo "Connected successfully with ColumnEncryption enabled.\n";
|
||||
|
|
|
@ -7,7 +7,7 @@ Fetch encrypted data from a prepopulated test table given a custom keystore prov
|
|||
sqlsrv_configure('WarningsReturnAsErrors', 1);
|
||||
sqlsrv_configure('LogSeverity', SQLSRV_LOG_SEVERITY_ALL);
|
||||
|
||||
require_once('MsHelper.inc');
|
||||
require_once('MsCommon.inc');
|
||||
$conn = AE\connect(array('ReturnDatesAsStrings'=>true));
|
||||
if ($conn === false) {
|
||||
fatalError("Failed to connect.\n");
|
||||
|
|
|
@ -46,7 +46,7 @@ function execProcedure($conn, $tsql, $params)
|
|||
function testOutputParam($conn, $tableName)
|
||||
{
|
||||
// First, create a stored procedure
|
||||
$procName = getTempProcName('sqlVariant', false);
|
||||
$procName = 'sqlVariant_out_proc';
|
||||
|
||||
$spArgs = "@p2 sql_variant OUTPUT";
|
||||
|
||||
|
@ -77,7 +77,7 @@ function testOutputParam($conn, $tableName)
|
|||
|
||||
function testInputAndOutputParam($conn, $tableName)
|
||||
{
|
||||
$procName = getTempProcName('sqlVariant', false);
|
||||
$procName = 'sqlVariant_inout_proc';
|
||||
$spArgs = "@p1 int, @p2 sql_variant OUTPUT";
|
||||
$spCode = "SET @p2 = ( SELECT [c2_variant] FROM $tableName WHERE [c1_int] = @p1)";
|
||||
$stmt = sqlsrv_query($conn, "CREATE PROC [$procName] ($spArgs) AS BEGIN $spCode END");
|
||||
|
|
|
@ -15,7 +15,7 @@ $tableName = 'testDataTypes_GH231_VC';
|
|||
$columnNames = array("c1", "c2");
|
||||
|
||||
for ($k = 1; $k <= 8; $k++) {
|
||||
$sqlType = getFieldType($k);
|
||||
$sqlType = SQLType($k);
|
||||
$columns = array(new AE\ColumnMeta('int', $columnNames[0]),
|
||||
new AE\ColumnMeta($sqlType, $columnNames[1]));
|
||||
AE\createTable($conn, $tableName, $columns);
|
||||
|
@ -123,7 +123,7 @@ function getPhpType($k)
|
|||
return $phpType;
|
||||
}
|
||||
|
||||
function getFieldType($k)
|
||||
function SQLType($k)
|
||||
{
|
||||
switch ($k) {
|
||||
case 1: return ("char(512)");
|
||||
|
|
Loading…
Reference in a new issue