route/vendor/github.com/bifurcation/mint/common_test.go

93 lines
1.9 KiB
Go

package mint
import (
"bytes"
"encoding/hex"
"fmt"
"reflect"
"runtime"
"testing"
)
func unhex(h string) []byte {
b, err := hex.DecodeString(h)
if err != nil {
panic(err)
}
return b
}
func assert(t *testing.T, test bool, msg string) {
t.Helper()
prefix := string("")
for i := 1; ; i++ {
_, file, line, ok := runtime.Caller(i)
if !ok {
break
}
prefix = fmt.Sprintf("%v: %d\n", file, line) + prefix
}
if !test {
t.Fatalf(prefix + msg)
}
}
func assertError(t *testing.T, err error, msg string) {
t.Helper()
assert(t, err != nil, msg)
}
func assertNotError(t *testing.T, err error, msg string) {
t.Helper()
if err != nil {
msg += ": " + err.Error()
}
assert(t, err == nil, msg)
}
func assertNil(t *testing.T, x interface{}, msg string) {
t.Helper()
assert(t, x == nil, msg)
}
func assertNotNil(t *testing.T, x interface{}, msg string) {
t.Helper()
assert(t, x != nil, msg)
}
func assertEquals(t *testing.T, a, b interface{}) {
t.Helper()
assert(t, a == b, fmt.Sprintf("%+v != %+v", a, b))
}
func assertByteEquals(t *testing.T, a, b []byte) {
t.Helper()
assert(t, bytes.Equal(a, b), fmt.Sprintf("%+v != %+v", hex.EncodeToString(a), hex.EncodeToString(b)))
}
func assertNotByteEquals(t *testing.T, a, b []byte) {
t.Helper()
assert(t, !bytes.Equal(a, b), fmt.Sprintf("%+v == %+v", hex.EncodeToString(a), hex.EncodeToString(b)))
}
func assertCipherSuiteParamsEquals(t *testing.T, a, b CipherSuiteParams) {
t.Helper()
assertEquals(t, a.Suite, b.Suite)
// Can't compare aeadFactory values
assertEquals(t, a.Hash, b.Hash)
assertEquals(t, a.KeyLen, b.KeyLen)
assertEquals(t, a.IvLen, b.IvLen)
}
func assertDeepEquals(t *testing.T, a, b interface{}) {
t.Helper()
assert(t, reflect.DeepEqual(a, b), fmt.Sprintf("%+v != %+v", a, b))
}
func assertSameType(t *testing.T, a, b interface{}) {
t.Helper()
A := reflect.TypeOf(a)
B := reflect.TypeOf(b)
assert(t, A == B, fmt.Sprintf("%s != %s", A.Name(), B.Name()))
}