From 3fed0461e04015caf13df2c5e10e18c202d2e296 Mon Sep 17 00:00:00 2001 From: VSadov Date: Fri, 13 Mar 2015 17:02:44 -0700 Subject: [PATCH] Made testcase ConditionalMemberAccessRace002 to exit more reliably. Fixes #760 --- .../CodeGenShortCircuitOperatorTests.cs | 39 +++++++++++-------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/src/Compilers/CSharp/Test/Emit/CodeGen/CodeGenShortCircuitOperatorTests.cs b/src/Compilers/CSharp/Test/Emit/CodeGen/CodeGenShortCircuitOperatorTests.cs index f0eeb459faf..0adda075b15 100644 --- a/src/Compilers/CSharp/Test/Emit/CodeGen/CodeGenShortCircuitOperatorTests.cs +++ b/src/Compilers/CSharp/Test/Emit/CodeGen/CodeGenShortCircuitOperatorTests.cs @@ -4176,7 +4176,7 @@ static void Main() var comp = CompileAndVerify(source, expectedOutput: @"Success"); } - [Fact(Skip = "836"), WorkItem(836, "GitHub")] + [Fact(), WorkItem(836, "GitHub")] public void ConditionalMemberAccessRace002() { var source = @" @@ -4218,25 +4218,30 @@ static void Main() } }; - Task.Factory.StartNew(a); - Task.Factory.StartNew(a); - Task.Factory.StartNew(a); - Task.Factory.StartNew(a); - Task.Factory.StartNew(a); - Task.Factory.StartNew(a); - Task.Factory.StartNew(a); - Task.Factory.StartNew(a); - Task.Factory.StartNew(a); - Task.Factory.StartNew(a); - Task.Factory.StartNew(a); - Task.Factory.StartNew(a); - Task.Factory.StartNew(a); - Task.Factory.StartNew(a); - Task.Factory.StartNew(a); - Task.Factory.StartNew(a); + var tasks = new List(); + tasks.Add(Task.Factory.StartNew(a)); + tasks.Add(Task.Factory.StartNew(a)); + tasks.Add(Task.Factory.StartNew(a)); + tasks.Add(Task.Factory.StartNew(a)); + tasks.Add(Task.Factory.StartNew(a)); + tasks.Add(Task.Factory.StartNew(a)); + tasks.Add(Task.Factory.StartNew(a)); + tasks.Add(Task.Factory.StartNew(a)); + tasks.Add(Task.Factory.StartNew(a)); + tasks.Add(Task.Factory.StartNew(a)); + tasks.Add(Task.Factory.StartNew(a)); + tasks.Add(Task.Factory.StartNew(a)); + tasks.Add(Task.Factory.StartNew(a)); + tasks.Add(Task.Factory.StartNew(a)); + tasks.Add(Task.Factory.StartNew(a)); + tasks.Add(Task.Factory.StartNew(a)); a(); + // wait for all tasks to exit or we may have + // test issues when unloading ApDomain while threads still running in it + Task.WaitAll(tasks.ToArray()); + System.Console.WriteLine(""Success""); } } -- GitLab