diff options
Diffstat (limited to 'libgo/go/runtime/malloc_test.go')
-rw-r--r-- | libgo/go/runtime/malloc_test.go | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/libgo/go/runtime/malloc_test.go b/libgo/go/runtime/malloc_test.go index 4f9262760e..bc5530c2f2 100644 --- a/libgo/go/runtime/malloc_test.go +++ b/libgo/go/runtime/malloc_test.go @@ -14,6 +14,10 @@ import ( func TestMemStats(t *testing.T) { t.Skip("skipping test with gccgo") + + // Make sure there's at least one forced GC. + GC() + // Test that MemStats has sane values. st := new(MemStats) ReadMemStats(st) @@ -25,7 +29,7 @@ func TestMemStats(t *testing.T) { st.HeapInuse == 0 || st.HeapObjects == 0 || st.StackInuse == 0 || st.StackSys == 0 || st.MSpanInuse == 0 || st.MSpanSys == 0 || st.MCacheInuse == 0 || st.MCacheSys == 0 || st.BuckHashSys == 0 || st.GCSys == 0 || st.OtherSys == 0 || - st.NextGC == 0 { + st.NextGC == 0 || st.NumForcedGC == 0 { t.Fatalf("Zero value: %+v", *st) } @@ -34,7 +38,7 @@ func TestMemStats(t *testing.T) { st.HeapIdle > 1e10 || st.HeapInuse > 1e10 || st.HeapObjects > 1e10 || st.StackInuse > 1e10 || st.StackSys > 1e10 || st.MSpanInuse > 1e10 || st.MSpanSys > 1e10 || st.MCacheInuse > 1e10 || st.MCacheSys > 1e10 || st.BuckHashSys > 1e10 || st.GCSys > 1e10 || st.OtherSys > 1e10 || - st.NextGC > 1e10 || st.NumGC > 1e9 || st.PauseTotalNs > 1e11 { + st.NextGC > 1e10 || st.NumGC > 1e9 || st.NumForcedGC > 1e9 || st.PauseTotalNs > 1e11 { t.Fatalf("Insanely high value (overflow?): %+v", *st) } if st.Sys != st.HeapSys+st.StackSys+st.MSpanSys+st.MCacheSys+ @@ -72,6 +76,10 @@ func TestMemStats(t *testing.T) { t.Fatalf("PauseTotalNs(%d) < sum PauseNs(%d)", st.PauseTotalNs, pauseTotal) } } + + if st.NumForcedGC > st.NumGC { + t.Fatalf("NumForcedGC(%d) > NumGC(%d)", st.NumForcedGC, st.NumGC) + } } func TestStringConcatenationAllocs(t *testing.T) { |