mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-08-28 02:44:59 +00:00
36 lines
746 B
Go
36 lines
746 B
Go
// Copyright 2022 Molecula Corp. (DBA FeatureBase).
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
//go:build !go1.14
|
|
// +build !go1.14
|
|
|
|
package testhook
|
|
|
|
import (
|
|
"sync"
|
|
"testing"
|
|
)
|
|
|
|
var cleanupFuncs []func()
|
|
var cleanupMu sync.Mutex
|
|
|
|
func init() {
|
|
RegisterPostTestHook(runCleanupFuncs)
|
|
}
|
|
|
|
func runCleanupFuncs() error {
|
|
cleanupMu.Lock()
|
|
defer cleanupMu.Unlock()
|
|
for _, fn := range cleanupFuncs {
|
|
fn()
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// Cleanup in 1.13 logs a message about skipping a cleanup function, but
|
|
// allows things to build. Cleanup in 1.14 uses tb.Cleanup to register
|
|
// a cleanup function to call when a test completes.
|
|
func Cleanup(tb testing.TB, fn func()) {
|
|
cleanupMu.Lock()
|
|
defer cleanupMu.Unlock()
|
|
cleanupFuncs = append(cleanupFuncs, fn)
|
|
}
|