corso/src/internal/tester/tester.go
ashmrtn bf29443ad4
Use interface for test helper functions (#4114)
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
2023-08-25 17:28:09 +00:00

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
}