-
Notifications
You must be signed in to change notification settings - Fork 373
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #776 from yitam/streamTests
Modified BVT stream tests to make them more robust
- Loading branch information
Showing
3 changed files
with
165 additions
and
99 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,56 +1,76 @@ | ||
--TEST-- | ||
insert stream. | ||
--SKIPIF-- | ||
|
||
?> | ||
--FILE-- | ||
--TEST-- | ||
insert stream. | ||
--SKIPIF-- | ||
--FILE-- | ||
<?php | ||
/* Connect to the local server using Windows Authentication and | ||
specify the AdventureWorks database as the database in use. */ | ||
require('connect.inc'); | ||
$connectionInfo = array( "Database"=>"$databaseName", "UID"=>"$uid", "PWD"=>"$pwd"); | ||
$conn = sqlsrv_connect( $server, $connectionInfo); | ||
if( $conn === false ) | ||
{ | ||
echo "Could not connect.\n"; | ||
die( print_r( sqlsrv_errors(), true)); | ||
$conn = sqlsrv_connect($server, $connectionInfo); | ||
if ($conn === false) { | ||
echo "Could not connect.\n"; | ||
die(print_r(sqlsrv_errors(), true)); | ||
} | ||
|
||
/* Remove any records with from the table with ProductID = 999*/ | ||
$productID = 999; | ||
$tsql = "DELETE FROM Production.ProductReview WHERE ProductID = $productID"; | ||
sqlsrv_query($conn, $tsql); | ||
|
||
/* Set up the Transact-SQL query. */ | ||
$tsql = "INSERT INTO Production.ProductReview (ProductID, | ||
ReviewerName, | ||
ReviewDate, | ||
EmailAddress, | ||
Rating, | ||
Comments) | ||
$tsql = "INSERT INTO Production.ProductReview (ProductID, | ||
ReviewerName, | ||
ReviewDate, | ||
EmailAddress, | ||
Rating, | ||
Comments) | ||
VALUES (?, ?, ?, ?, ?, ?)"; | ||
|
||
|
||
/* Set the parameter values and put them in an array. | ||
Note that $comments is opened as a stream. */ | ||
$productID = '709'; | ||
|
||
$number = rand(99, 9999); | ||
$input = "[Insert some number $number]"; | ||
|
||
/* There is no record in this table with ProductID = 999 */ | ||
$name = 'Customer Name'; | ||
$date = date("Y-m-d"); | ||
$email = '[email protected]'; | ||
$rating = 3; | ||
$comments = fopen( "data://text/plain,[ Insert lengthy comment here.]", | ||
"r"); | ||
$comments = fopen("data://text/plain,$input", "r"); | ||
$params = array($productID, $name, $date, $email, $rating, $comments); | ||
|
||
/* Execute the query. All stream data is sent upon execution.*/ | ||
$stmt = sqlsrv_query($conn, $tsql, $params); | ||
if( $stmt === false ) | ||
{ | ||
echo "Error in statement execution.\n"; | ||
die( print_r( sqlsrv_errors(), true)); | ||
} | ||
else | ||
{ | ||
echo "The query was successfully executed."; | ||
if ($stmt === false) { | ||
echo "Error in statement execution.\n"; | ||
die(print_r(sqlsrv_errors(), true)); | ||
} | ||
|
||
/* Read it back to check the comment */ | ||
$tsql = "SELECT Comments FROM Production.ProductReview | ||
WHERE ProductID = $productID"; | ||
$stmt = sqlsrv_query($conn, $tsql); | ||
if (sqlsrv_fetch($stmt)) { | ||
$review = sqlsrv_get_field($stmt, 0); | ||
if ($review !== $input) { | ||
echo "Comment retrieved \'$review\' is incorrect!" . PHP_EOL; | ||
} | ||
} else { | ||
echo "Error in retrieving comments!" . PHP_EOL; | ||
die(print_r(sqlsrv_errors(), true)); | ||
} | ||
|
||
/* Remove the entry from the table */ | ||
$tsql = "DELETE FROM Production.ProductReview WHERE ProductID = $productID"; | ||
sqlsrv_query($conn, $tsql); | ||
|
||
echo "Done" . PHP_EOL; | ||
|
||
/* Free statement and connection resources. */ | ||
sqlsrv_free_stmt( $stmt); | ||
sqlsrv_close( $conn); | ||
?> | ||
--EXPECT-- | ||
sqlsrv_free_stmt($stmt); | ||
sqlsrv_close($conn); | ||
?> | ||
--EXPECT-- | ||
The query was successfully executed. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,48 +1,69 @@ | ||
--TEST-- | ||
Sends data from parameter streams to the server | ||
--SKIPIF-- | ||
|
||
--FILE-- | ||
--TEST-- | ||
Sends data from parameter streams to the server | ||
--SKIPIF-- | ||
|
||
--FILE-- | ||
<?php | ||
require('connect.inc'); | ||
$connectionInfo = array( "Database"=>"$databaseName", "UID"=>"$uid", "PWD"=>"$pwd"); | ||
$conn = sqlsrv_connect( $server, $connectionInfo); | ||
if( $conn === false ) | ||
{ | ||
echo "Could not connect.<br>"; | ||
die( print_r( sqlsrv_errors(), true)); | ||
$connectionInfo = array("Database"=>"$databaseName", "UID"=>"$uid", "PWD"=>"$pwd"); | ||
$conn = sqlsrv_connect($server, $connectionInfo); | ||
if ($conn === false) { | ||
echo "Could not connect.<br>"; | ||
die(print_r(sqlsrv_errors(), true)); | ||
} | ||
|
||
/* Define the query. */ | ||
$tsql = "UPDATE Production.ProductReview | ||
SET Comments = ( ?) | ||
$tsql = "UPDATE Production.ProductReview | ||
SET Comments = (?) | ||
WHERE ProductReviewID = 3"; | ||
|
||
$number = rand(99, 9999); | ||
$input = "[Insert some number $number]"; | ||
|
||
/* Open parameter data as a stream and put it in the $params array. */ | ||
$comment = fopen( "data://text/plain,[ Insert lengthy comment.]", "r"); | ||
$params = array( &$comment); | ||
$comments = fopen("data://text/plain,$input", "r"); | ||
$params = array(&$comments); | ||
|
||
/* Prepare the statement. Use the $options array to turn off the | ||
default behavior, which is to send all stream data at the time of query | ||
execution. */ | ||
$options = array("SendStreamParamsAtExec"=>0); | ||
$stmt = sqlsrv_prepare( $conn, $tsql, $params, $options); | ||
$options = array("SendStreamParamsAtExec" => 0); | ||
$stmt = sqlsrv_prepare($conn, $tsql, $params, $options); | ||
|
||
/* Execute the statement. */ | ||
sqlsrv_execute( $stmt); | ||
sqlsrv_execute($stmt); | ||
|
||
/* Send up to 8K of parameter data to the server with each call to | ||
sqlsrv_send_stream_data. Count the calls. */ | ||
$i = 1; | ||
while( sqlsrv_send_stream_data( $stmt)) | ||
{ | ||
echo "$i call(s) made.<br>"; | ||
$i++; | ||
} | ||
while (sqlsrv_send_stream_data($stmt)) { | ||
$i++; | ||
} | ||
|
||
/* For PHP 7.2, it takes 2 calls whereas older PHP versions | ||
take up to 3 calls */ | ||
if ($i < 2 || $i > 3) { | ||
echo "Expects 2 to 3 calls only." . PHP_EOL; | ||
} | ||
|
||
/* Read it back to check the comments */ | ||
$tsql = "SELECT Comments FROM Production.ProductReview | ||
WHERE ProductReviewID = 3"; | ||
$stmt = sqlsrv_query($conn, $tsql); | ||
if (sqlsrv_fetch($stmt)) { | ||
$review = sqlsrv_get_field($stmt, 0); | ||
if ($review !== $input) { | ||
echo "Comments retrieved \'$review\' is incorrect!" . PHP_EOL; | ||
} | ||
} else { | ||
echo "Error in retrieving comments!" . PHP_EOL; | ||
die(print_r(sqlsrv_errors(), true)); | ||
} | ||
|
||
echo "Done" . PHP_EOL; | ||
|
||
/* Free statement and connection resources. */ | ||
sqlsrv_free_stmt( $stmt); | ||
sqlsrv_close( $conn); | ||
?> | ||
--EXPECT-- | ||
1 call(s) made.<br>2 call(s) made.<br>3 call(s) made.<br> | ||
sqlsrv_free_stmt($stmt); | ||
sqlsrv_close($conn); | ||
?> | ||
--EXPECT-- | ||
Done |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,39 +1,43 @@ | ||
--TEST-- | ||
sned stream data with SendStreamParamsAtExec turned off. | ||
--SKIPIF-- | ||
|
||
?> | ||
--FILE-- | ||
--TEST-- | ||
Send stream data with SendStreamParamsAtExec turned off. | ||
--SKIPIF-- | ||
--FILE-- | ||
<?php | ||
/* Connect to the local server using Windows Authentication and | ||
specify the AdventureWorks database as the database in use. */ | ||
require('connect.inc'); | ||
$connectionInfo = array( "Database"=>"$databaseName", "UID"=>"$uid", "PWD"=>"$pwd"); | ||
$conn = sqlsrv_connect( $server, $connectionInfo); | ||
if( $conn === false ) | ||
{ | ||
echo "Could not connect.\n"; | ||
die( print_r( sqlsrv_errors(), true)); | ||
$connectionInfo = array("Database"=>"$databaseName", "UID"=>"$uid", "PWD"=>"$pwd"); | ||
$conn = sqlsrv_connect($server, $connectionInfo); | ||
if ($conn === false) { | ||
echo "Could not connect.\n"; | ||
die(print_r(sqlsrv_errors(), true)); | ||
} | ||
|
||
/* Remove any records with from the table with ProductID = 999*/ | ||
$productID = 999; | ||
$tsql = "DELETE FROM Production.ProductReview WHERE ProductID = $productID"; | ||
sqlsrv_query($conn, $tsql); | ||
|
||
/* Set up the Transact-SQL query. */ | ||
$tsql = "INSERT INTO Production.ProductReview (ProductID, | ||
ReviewerName, | ||
ReviewDate, | ||
EmailAddress, | ||
Rating, | ||
Comments) | ||
$tsql = "INSERT INTO Production.ProductReview (ProductID, | ||
ReviewerName, | ||
ReviewDate, | ||
EmailAddress, | ||
Rating, | ||
Comments) | ||
VALUES (?, ?, ?, ?, ?, ?)"; | ||
|
||
/* Set the parameter values and put them in an array. | ||
Note that $comments is opened as a stream. */ | ||
$productID = '709'; | ||
Note that $comments is opened as a stream. */ | ||
$number = rand(99, 9999); | ||
$input = "[Insert some number $number]"; | ||
|
||
/* There is no record in this table with ProductID 999 */ | ||
$name = 'Customer Name'; | ||
$date = date("Y-m-d"); | ||
$email = '[email protected]'; | ||
$rating = 3; | ||
$comments = fopen( "data://text/plain,[ Insert lengthy comment here.]", | ||
"r"); | ||
$comments = fopen("data://text/plain,$input", "r"); | ||
$params = array($productID, $name, $date, $email, $rating, $comments); | ||
|
||
/* Turn off the default behavior of sending all stream data at | ||
|
@@ -42,26 +46,47 @@ $options = array("SendStreamParamsAtExec" => 0); | |
|
||
/* Execute the query. */ | ||
$stmt = sqlsrv_query($conn, $tsql, $params, $options); | ||
if( $stmt === false ) | ||
{ | ||
echo "Error in statement execution.\n"; | ||
die( print_r( sqlsrv_errors(), true)); | ||
if ($stmt === false) { | ||
echo "Error in statement execution.\n"; | ||
die(print_r(sqlsrv_errors(), true)); | ||
} | ||
|
||
/* Send up to 8K of parameter data to the server with each call to | ||
sqlsrv_send_stream_data. Count the calls. */ | ||
$i = 1; | ||
while( sqlsrv_send_stream_data( $stmt)) | ||
{ | ||
echo "$i call(s) made.\n"; | ||
$i++; | ||
while (sqlsrv_send_stream_data($stmt)) { | ||
$i++; | ||
} | ||
|
||
/* For PHP 7.2, it takes 2 calls whereas older PHP versions | ||
take up to 3 calls */ | ||
if ($i < 2 || $i > 3) { | ||
echo "Expects 2 to 3 calls only." . PHP_EOL; | ||
} | ||
|
||
/* Read it back to check the comments */ | ||
$tsql = "SELECT Comments FROM Production.ProductReview | ||
WHERE ProductID = $productID"; | ||
$stmt = sqlsrv_query($conn, $tsql); | ||
if (sqlsrv_fetch($stmt)) { | ||
$review = sqlsrv_get_field($stmt, 0); | ||
if ($review !== $input) { | ||
echo "Comments retrieved \'$review\' is incorrect!" . PHP_EOL; | ||
} | ||
} else { | ||
echo "Error in retrieving comments!" . PHP_EOL; | ||
die(print_r(sqlsrv_errors(), true)); | ||
} | ||
|
||
/* Remove the entry from the table */ | ||
$tsql = "DELETE FROM Production.ProductReview WHERE ProductID = $productID"; | ||
sqlsrv_query($conn, $tsql); | ||
|
||
echo "Done" . PHP_EOL; | ||
|
||
/* Free statement and connection resources. */ | ||
sqlsrv_free_stmt( $stmt); | ||
sqlsrv_close( $conn); | ||
?> | ||
--EXPECT-- | ||
1 call(s) made. | ||
2 call(s) made. | ||
3 call(s) made. | ||
sqlsrv_free_stmt($stmt); | ||
sqlsrv_close($conn); | ||
?> | ||
--EXPECT-- | ||
Done |