Take an interface as the parameter for test helper functions. This allows them to be used with *testing.B (benchmark) as well as *testing.T (test). --- #### Does this PR need a docs update or release note? - [ ] ✅ Yes, it's included - [ ] 🕐 Yes, but in a later PR - [x] ⛔ No #### Type of change - [ ] 🌻 Feature - [ ] 🐛 Bugfix - [ ] 🗺️ Documentation - [x] 🤖 Supportability/Tests - [ ] 💻 CI/Deployment - [ ] 🧹 Tech Debt/Cleanup #### Test Plan - [x] 💪 Manual - [ ] ⚡ Unit test - [ ] 💚 E2E
51 lines
848 B
Go
51 lines
848 B
Go
package tester
|
|
|
|
import (
|
|
"reflect"
|
|
"runtime"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
// AreSameFunc asserts whether the two funcs are the same func.
|
|
func AreSameFunc(t *testing.T, expect, have any) {
|
|
assert.Equal(
|
|
t,
|
|
runtime.FuncForPC(
|
|
reflect.
|
|
ValueOf(expect).
|
|
Pointer(),
|
|
).Name(),
|
|
runtime.FuncForPC(
|
|
reflect.
|
|
ValueOf(have).
|
|
Pointer(),
|
|
).Name(),
|
|
)
|
|
}
|
|
|
|
type TestT interface {
|
|
Logf(format string, args ...any)
|
|
Name() string
|
|
TempDir() string
|
|
require.TestingT
|
|
}
|
|
|
|
// LogTimeOfTest logs the test name and the time that it was run.
|
|
func LogTimeOfTest(t TestT) string {
|
|
now := time.Now().UTC().Format(time.RFC3339Nano)
|
|
name := t.Name()
|
|
|
|
if name == "" {
|
|
t.Logf("Test run at %s.", now)
|
|
return now
|
|
}
|
|
|
|
t.Logf("%s run at %s", name, now)
|
|
|
|
return now
|
|
}
|