func (*functionSuite) TestDeferredAnnotatef(c *gc.C) { // NOTE: this test fails with gccgo if runtime.Compiler == "gccgo" { c.Skip("gccgo can't determine the location") } first := errors.New("first") test := func() (err error) { defer errors.DeferredAnnotatef(&err, "deferred %s", "annotate") return first } //err deferredAnnotate err := test() c.Assert(err.Error(), gc.Equals, "deferred annotate: first") c.Assert(errors.Cause(err), gc.Equals, first) c.Assert(errors.Details(err), jc.Contains, tagToLocation["deferredAnnotate"].String()) err = nil errors.DeferredAnnotatef(&err, "deferred %s", "annotate") c.Assert(err, gc.IsNil) }
func deferredAnnotatef(err error, format string, args ...interface{}) error { errors.DeferredAnnotatef(&err, format, args...) return err }