All checks were successful
Test / Create distribution (push) Successful in 33s
Test / Sandbox (push) Successful in 1m53s
Test / Hakurei (push) Successful in 3m18s
Test / Sandbox (race detector) (push) Successful in 3m40s
Test / Hpkg (push) Successful in 3m35s
Test / Hakurei (race detector) (push) Successful in 5m19s
Test / Flake checks (push) Successful in 1m39s
These are very useful in many packages containing relatively large amount of code making calls to difficult or impossible to stub functions. Signed-off-by: Ophestra <cat@gensokyo.uk>
26 lines
491 B
Go
26 lines
491 B
Go
package stub
|
|
|
|
import (
|
|
"errors"
|
|
"strconv"
|
|
)
|
|
|
|
var (
|
|
ErrCheck = errors.New("one or more arguments did not match")
|
|
)
|
|
|
|
// UniqueError is an error that only equivalates to other [UniqueError] with the same magic value.
|
|
type UniqueError uintptr
|
|
|
|
func (e UniqueError) Error() string {
|
|
return "unique error " + strconv.Itoa(int(e)) + " injected by the test suite"
|
|
}
|
|
|
|
func (e UniqueError) Is(target error) bool {
|
|
var u UniqueError
|
|
if !errors.As(target, &u) {
|
|
return false
|
|
}
|
|
return e == u
|
|
}
|