Merge branch 'upstream'

Former-commit-id: 6aa25f66bcddf768bc961b2968f1fb00559509fa
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2018-02-13 19:16:57 +00:00
38 changed files with 95 additions and 64 deletions

View File

@ -1 +1 @@
d14366b531b59bf249a7d028ed19c2a11ab16eef e85437818f00d2cd9616f6dcf51f3e793755c691

View File

@ -1 +1 @@
374b05f540bd7262e73749cf47856879fd8b1f59 f717d8e40d24ffb6ae41b33e6a891cb36e88c578

View File

@ -29,18 +29,9 @@ using System.Diagnostics;
using System.Threading; using System.Threading;
using NUnit.Framework.Api; using NUnit.Framework.Api;
using System.Collections.Generic; using System.Collections.Generic;
using System.Runtime.Remoting.Messaging;
namespace NUnit.Framework.Internal namespace NUnit.Framework.Internal
{ {
[Serializable]
class Container : ILogicalThreadAffinative {
public string testName;
public Container(string testName) {
this.testName = testName;
}
}
public class FinallyDelegate public class FinallyDelegate
{ {
// If our test spawns a thread that throws, we will bubble // If our test spawns a thread that throws, we will bubble
@ -58,31 +49,19 @@ namespace NUnit.Framework.Internal
// so we need a stack of finally delegate continuations // so we need a stack of finally delegate continuations
Stack<Tuple<TestExecutionContext, long, TestResult>> testStack; Stack<Tuple<TestExecutionContext, long, TestResult>> testStack;
Dictionary<string, TestResult> lookupTable;
private static readonly string CONTEXT_KEY = "TestResultName";
public FinallyDelegate () { public FinallyDelegate () {
this.testStack = new Stack<Tuple<TestExecutionContext, long, TestResult>>(); this.testStack = new Stack<Tuple<TestExecutionContext, long, TestResult>>();
this.lookupTable = new Dictionary<string, TestResult>();
} }
public void Set (TestExecutionContext context, long startTicks, TestResult result) { public void Set (TestExecutionContext context, long startTicks, TestResult result) {
var frame = new Tuple<TestExecutionContext, long, TestResult>(context, startTicks, result); var frame = new Tuple<TestExecutionContext, long, TestResult>(context, startTicks, result);
/* keep name in LogicalCallContext, because this will be inherited by
* Threads spawned by the test case */
CallContext.SetData(CONTEXT_KEY, new Container(result.Test.FullName));
this.lookupTable.Add(result.Test.FullName, result);
this.testStack.Push(frame); this.testStack.Push(frame);
} }
public void HandleUnhandledExc (Exception ex) { public void HandleUnhandledExc (Exception ex) {
Container c = (Container) CallContext.GetData(CONTEXT_KEY); TestExecutionContext context = this.testStack.Peek().Item1;
TestResult result = this.lookupTable [c.testName]; context.CurrentResult.RecordException(ex);
result.RecordException(ex); context.CurrentResult.ThreadCrashFail = true;
result.ThreadCrashFail = true;
} }
public void Complete () { public void Complete () {

View File

@ -180,15 +180,6 @@ namespace NUnit.Framework.Internal.WorkItems
#endif #endif
private void RunTest() private void RunTest()
{
/* using a separate ExecutionContext for every test case,
* guarantees us to have a dedicated "namespace" for the
* LogicalCallContext per testcase */
ExecutionContext ec = ExecutionContext.Capture();
ExecutionContext.Run(ec, DispatchWork, null);
}
private void DispatchWork(object o)
{ {
_context.CurrentTest = this.Test; _context.CurrentTest = this.Test;
_context.CurrentResult = this.Result; _context.CurrentResult = this.Result;

View File

@ -34,7 +34,7 @@ static class Consts
// Use these assembly version constants to make code more maintainable. // Use these assembly version constants to make code more maintainable.
// //
public const string MonoVersion = "5.10.0.103"; public const string MonoVersion = "5.10.0.105";
public const string MonoCompany = "Mono development team"; public const string MonoCompany = "Mono development team";
public const string MonoProduct = "Mono Common Language Infrastructure"; public const string MonoProduct = "Mono Common Language Infrastructure";
public const string MonoCopyright = "(c) Various Mono authors"; public const string MonoCopyright = "(c) Various Mono authors";

View File

@ -1 +1 @@
91510c0d48e8b8e4fd0244ba7b73ffb5b0008d59 fddd884e0a3f48fdac078ec0d528d6159dfe3856

View File

@ -1 +1 @@
254d9408bc8a59955b3acbd045dab6ff7b365c37 3d10120799d1ccf8914b1902a7c3fb41069946f5

View File

@ -1 +1 @@
29b49effce90b7f2fe0c79a6de7b247df79e829a d599d559b4f824d76c3fcfcf98e6a7ee61fdcfb6

View File

@ -1 +1 @@
8eba7aa42674b1f25626dfbf370c22074eea751e 4c4fd3ffa294a529c35142173f121f7298a5c4a1

View File

@ -1 +1 @@
9f6e1f37b3af679ed3d2549d5d41977edc9134df 4fddd6a0abadcaa77515b4ed9f5f6f64ae70cfa4

View File

@ -1 +1 @@
33afdd892811cf9251820346c334158d1c465bca 040c8846dde8f31ee7cfa823ba1e2e45f34138a8

View File

@ -1 +1 @@
e54e0d5a9a12b874a7aee94f6b7e79fab0d46910 67be408a823afdbf1873d117d1ecc541ba05d81a

View File

@ -1 +1 @@
91510c0d48e8b8e4fd0244ba7b73ffb5b0008d59 fddd884e0a3f48fdac078ec0d528d6159dfe3856

View File

@ -1 +1 @@
254d9408bc8a59955b3acbd045dab6ff7b365c37 3d10120799d1ccf8914b1902a7c3fb41069946f5

View File

@ -1 +1 @@
29b49effce90b7f2fe0c79a6de7b247df79e829a d599d559b4f824d76c3fcfcf98e6a7ee61fdcfb6

View File

@ -1 +1 @@
8eba7aa42674b1f25626dfbf370c22074eea751e 4c4fd3ffa294a529c35142173f121f7298a5c4a1

View File

@ -1 +1 @@
9f6e1f37b3af679ed3d2549d5d41977edc9134df 4fddd6a0abadcaa77515b4ed9f5f6f64ae70cfa4

View File

@ -1 +1 @@
33afdd892811cf9251820346c334158d1c465bca 040c8846dde8f31ee7cfa823ba1e2e45f34138a8

View File

@ -1 +1 @@
e54e0d5a9a12b874a7aee94f6b7e79fab0d46910 67be408a823afdbf1873d117d1ecc541ba05d81a

View File

@ -1 +1 @@
91510c0d48e8b8e4fd0244ba7b73ffb5b0008d59 fddd884e0a3f48fdac078ec0d528d6159dfe3856

Some files were not shown because too many files have changed in this diff Show More