func CmpNoError(t TestingT, got error, args ...interface{}) bool {
	t.Helper()
	return cmpNoError(newContext(), t, got, args...)
}
CmpNoError checks that "got" is nil error.

value, err := MyFunction(1, 2, 3)
if td.CmpNoError(t, err) {
// one can now check value...
}

"args..." are optional and allow to name the test. This name is
used in case of failure to qualify the test. If len(args) > 1 and
the first item of "args" is a string and contains a '%' rune then
fmt.Fprintf is used to compose the name, else "args" are passed to
fmt.Fprint. Do not forget it is the name of the test, not the
reason of a potential failure.
package td
import (
	"runtime"
	"github.com/maxatome/go-testdeep/internal/ctxerr"
	"github.com/maxatome/go-testdeep/internal/types"
	"github.com/maxatome/go-testdeep/internal/util"
)
func CmpTrue(t TestingT, got bool, args ...interface{}) bool {
	t.Helper()
	return Cmp(t, got, true, args...)
}
func CmpFalse(t TestingT, got bool, args ...interface{}) bool {
	t.Helper()
	return Cmp(t, got, false, args...)
}
func cmpError(ctx ctxerr.Context, t TestingT, got error, args ...interface{}) bool {
	if got != nil {
		return true
	}
	t.Helper()
	formatError(t,
		ctx.FailureIsFatal,
		&ctxerr.Error{
			Context:  ctx,
			Message:  "should be an error",
			Got:      types.RawString("nil"),
			Expected: types.RawString("non-nil error"),
		},
		args...)
	return false
}
func cmpNoError(ctx ctxerr.Context, t TestingT, got error, args ...interface{}) bool {
	if got == nil {
		return true
	}
	t.Helper()
	formatError(t,
		ctx.FailureIsFatal,
		&ctxerr.Error{
			Context:  ctx,
			Message:  "should NOT be an error",
			Got:      got,
			Expected: types.RawString("nil"),
		},
		args...)
	return false
}
func CmpError(t TestingT, got error, args ...interface{}) bool {
	t.Helper()
	return cmpError(newContext(), t, got, args...)
}