From 9643853d919edd1af46287c46ca87d5eb2f11d81 Mon Sep 17 00:00:00 2001 From: Davoud Eshtehari Date: Fri, 23 Apr 2021 11:58:33 -0700 Subject: [PATCH] first --- .../SQL/ParameterTest/StreamInputParam.cs | 33 +++++++++---------- 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParam.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParam.cs index 65e32cca90..3d15b4346b 100644 --- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParam.cs +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/StreamInputParam.cs @@ -457,17 +457,16 @@ private static void ImmediateCancelBin() byte[] data = new byte[dataSize]; rand.NextBytes(data); MemoryStream ms = new MemoryStream(data, false); - cmd.CommandText = "insert into #blobs (Id, blob) values (1, @blob)"; + // Include a delay to allow time for cancellation + cmd.CommandText = "WAITFOR DELAY '00:00:05'; insert into #blobs (Id, blob) values (1, @blob)"; cmd.Parameters.Add("@blob", SqlDbType.VarBinary, dataSize); cmd.Parameters["@blob"].Direction = ParameterDirection.Input; cmd.Parameters["@blob"].Value = ms; - Task t = cmd.ExecuteNonQueryAsync(cts.Token); - if (!t.IsCompleted) - cts.Cancel(); + try { - t.Wait(); - Console.WriteLine("FAIL: Expected AggregateException on Task wait for Cancelled Task! Task Status: " + t.Status); + Task.WaitAll(cmd.ExecuteNonQueryAsync(cts.Token), Task.Run(() => cts.Cancel())); + Console.WriteLine("FAIL: Expected AggregateException on Task wait for Cancelled Task!"); } catch (AggregateException ae) { @@ -504,17 +503,16 @@ private static void ImmediateCancelText() StringBuilder sb = new StringBuilder(); for (int i = 0; i < 1000000; i++) sb.Append(i); - cmd.CommandText = "insert into #blobs (Id, blob) values (1, @blob)"; + // Include a delay to allow time for cancellation + cmd.CommandText = "WAITFOR DELAY '00:00:05'; insert into #blobs (Id, blob) values (1, @blob)"; cmd.Parameters.Add("@blob", SqlDbType.VarChar, -1); cmd.Parameters["@blob"].Direction = ParameterDirection.Input; cmd.Parameters["@blob"].Value = new StringReader(sb.ToString()); - Task t = cmd.ExecuteNonQueryAsync(cts.Token); - if (!t.IsCompleted) - cts.Cancel(); + try { - t.Wait(); - Console.WriteLine("FAIL: Expected AggregateException on Task wait for Cancelled Task! Task Status: " + t.Status); + Task.WaitAll(cmd.ExecuteNonQueryAsync(cts.Token), Task.Run(() => cts.Cancel())); + Console.WriteLine("FAIL: Expected AggregateException on Task wait for Cancelled Task!"); } catch (AggregateException ae) { @@ -544,17 +542,16 @@ private static void ImmediateCancelXml() { cmd.CommandText = "create table #blobs (Id int, blob xml)"; cmd.ExecuteNonQuery(); - cmd.CommandText = "insert into #blobs (Id, blob) values (1, @blob)"; + // Include a delay to allow time for cancellation + cmd.CommandText = "WAITFOR DELAY '00:00:05'; insert into #blobs (Id, blob) values (1, @blob)"; cmd.Parameters.Add("@blob", SqlDbType.Xml, -1); cmd.Parameters["@blob"].Direction = ParameterDirection.Input; cmd.Parameters["@blob"].Value = XmlReader.Create(new StringReader(XmlStr)); - Task t = cmd.ExecuteNonQueryAsync(cts.Token); - if (!t.IsCompleted) - cts.Cancel(); + try { - t.Wait(); - Console.WriteLine("FAIL: Expected AggregateException on Task wait for Cancelled Task! Task Status: " + t.Status); + Task.WaitAll(cmd.ExecuteNonQueryAsync(cts.Token), Task.Run(() => cts.Cancel())); + Console.WriteLine("FAIL: Expected AggregateException on Task wait for Cancelled Task!"); } catch (AggregateException ae) {