From ec5e5dba6fbc4549f167c6db509a800e163296c8 Mon Sep 17 00:00:00 2001 From: zhouguangyuan Date: Sun, 20 Mar 2022 00:07:37 +0800 Subject: runtime: fix name of type parameter CL 372774 is for reflect, this CL is for _type in runtime. Add a test case to ensure the name method of _type can be exercised. Updates #50208 Change-Id: I26ccf8c5c574dd9e78510cf29eb40ae7c8d449ab Reviewed-on: https://go-review.googlesource.com/c/go/+/393917 Reviewed-by: Keith Randall Reviewed-by: Keith Randall Run-TryBot: Keith Randall Auto-Submit: Keith Randall TryBot-Result: Gopher Robot Reviewed-by: Ian Lance Taylor --- src/runtime/debug/heapdump_test.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src/runtime/debug') diff --git a/src/runtime/debug/heapdump_test.go b/src/runtime/debug/heapdump_test.go index 768934d05d..ee6b054b11 100644 --- a/src/runtime/debug/heapdump_test.go +++ b/src/runtime/debug/heapdump_test.go @@ -67,3 +67,29 @@ func TestWriteHeapDumpFinalizers(t *testing.T) { WriteHeapDump(f.Fd()) println("done dump") } + +type G[T any] struct{} +type I interface { + M() +} + +//go:noinline +func (g G[T]) M() {} + +var dummy I = G[int]{} +var dummy2 I = G[G[int]]{} + +func TestWriteHeapDumpTypeName(t *testing.T) { + if runtime.GOOS == "js" { + t.Skipf("WriteHeapDump is not available on %s.", runtime.GOOS) + } + f, err := os.CreateTemp("", "heapdumptest") + if err != nil { + t.Fatalf("TempFile failed: %v", err) + } + defer os.Remove(f.Name()) + defer f.Close() + WriteHeapDump(f.Fd()) + dummy.M() + dummy2.M() +} -- cgit v1.3