Fix the GC total memory test.
authorPat Gavlin <pagavlin@microsoft.com>
Wed, 11 Jan 2017 20:34:21 +0000 (12:34 -0800)
committerPat Gavlin <pagavlin@microsoft.com>
Wed, 11 Jan 2017 20:34:21 +0000 (12:34 -0800)
This test was relying upon the result of GC.GetTotalMemory() returning a
greater number after allocating a large array. However, the array was
not kept live past the call to GC.GetTotalMemory, which resulted in this
test failing under GCStress=0xC (in which a GC is performed after each
instruction). This change adds the requisite call to GC.KeepAlive to
keep the allocated array live enough to be observed by
GC.GetTotalMemory.

tests/src/GC/API/GC/TotalMemory.cs

index ad5384621cfe28bced5ef98579bdf369c2ce5f97..d6233b1c8c374079e1fa3fffff2ef09f1e42f8ff 100644 (file)
@@ -23,6 +23,7 @@ public class Test {
         int[] array2 = new int[40000];
         int memnew = (int) GC.GetTotalMemory(false);
         Console.WriteLine("Total Memory: " + memnew);
+        GC.KeepAlive(array2);
 
         if(memnew >= memold) {
             Console.WriteLine("Test for GC.TotalMemory passed!");