From e28cce87c7551bffa1f4602ff492348f9a8cba60 Mon Sep 17 00:00:00 2001 From: lhchavez Date: Thu, 10 Dec 2020 05:35:40 -0800 Subject: Ensure that no pointer handles leak during the test (#712) This change makes sure that pointer handles are correctly cleaned up during tests. --- git_test.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'git_test.go') diff --git a/git_test.go b/git_test.go index 1bd311a..1c57f79 100644 --- a/git_test.go +++ b/git_test.go @@ -1,13 +1,33 @@ package git import ( + "fmt" "io/ioutil" "os" "path" + "reflect" "testing" "time" ) +func TestMain(m *testing.M) { + ret := m.Run() + + // Ensure that we are not leaking any pointer handles. + pointerHandles.Lock() + if len(pointerHandles.handles) > 0 { + for h, ptr := range pointerHandles.handles { + fmt.Printf("%016p: %v %+v\n", h, reflect.TypeOf(ptr), ptr) + } + panic("pointer handle list not empty") + } + pointerHandles.Unlock() + + Shutdown() + + os.Exit(ret) +} + func cleanupTestRepo(t *testing.T, r *Repository) { var err error if r.IsBare() { -- cgit v1.2.3