private static int NoInline_NoGCTransition(int expected) { Console.WriteLine($"{nameof(NoInline_NoGCTransition)} ({expected}) ..."); int n; SuppressGCTransitionNative.NextUInt_NoInline_NoGCTransition(&n); Assert.AreEqual(expected, n); return(n + 1); }
private static int NoInline_NoGCTransition(int expected) { Console.WriteLine($"{nameof(NoInline_NoGCTransition)} ({expected}) ..."); int n; bool ret = SuppressGCTransitionNative.NextUInt_NoInline_NoGCTransition(&n); Assert.Equal(expected, n); CheckGCMode.Validate(transitionSuppressed: true, ret); return(n + 1); }
private static int Mixed(int expected) { Console.WriteLine($"{nameof(Mixed)} ({expected}) ..."); int n; { bool ret = SuppressGCTransitionNative.NextUInt_NoInline_GCTransition(&n); Assert.AreEqual(expected++, n); ValidateMode(transitionSuppressed: false, ret); ret = SuppressGCTransitionNative.NextUInt_NoInline_NoGCTransition(&n); Assert.AreEqual(expected++, n); ValidateMode(transitionSuppressed: true, ret); } { int ret = SuppressGCTransitionNative.NextUInt_Inline_GCTransition(&n); Assert.AreEqual(expected++, n); ValidateMode(transitionSuppressed: false, ret); ret = SuppressGCTransitionNative.NextUInt_Inline_NoGCTransition(&n); Assert.AreEqual(expected++, n); ValidateMode(transitionSuppressed: true, ret); } return(n + 1); }