run
nofmt innerone innertwo
assertion outerthree outerfour

require (?s)
----
&assert.withAssertionFailure{
    cause: &withstack.withStack{
        cause: &barriers.barrierErr{
            smsg:      "‹innerone›\n‹innertwo›",
            maskedErr: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
        },
        stack: &stack{...},
    },
}
=====
===== non-redactable formats
=====
== %#v
&assert.withAssertionFailure{
    cause: &withstack.withStack{
        cause: &barriers.barrierErr{
            smsg:      "‹innerone›\n‹innertwo›",
            maskedErr: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
        },
        stack: &stack{...},
    },
}
== Error()
innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
innerone
(1) assertion failure
Wraps: (2) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  | runtime.goexit
  | <tab><path>:<lineno>
Wraps: (3) innerone
  | innertwo
  | -- cause hidden behind barrier
  | innerone
  | (1) innerone
  |   | innertwo
  | Error types: (1) *fmttests.errNoFmt
Error types: (1) *assert.withAssertionFailure (2) *withstack.withStack (3) *barriers.barrierErr
== %#v via Formattable() = %#v, good
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() == %+v, good
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v
‹innerone›
(1) assertion failure
Wraps: (2) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  | runtime.goexit
  | <tab><path>:<lineno>
Wraps: (3) ‹innerone›
  | ‹innertwo›
  | -- cause hidden behind barrier
  | ‹innerone›
  | (1) ‹innerone›
  | ‹  | innertwo›
  | Error types: (1) *fmttests.errNoFmt
Error types: (1) *assert.withAssertionFailure (2) *withstack.withStack (3) *barriers.barrierErr
=====
===== Sentry reporting
=====
== Message payload
<path>:<lineno>: ×
(1) assertion failure
Wraps: (2) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  | runtime.goexit
  | <tab><path>:<lineno>
Wraps: (3) ×
  | ×
  | -- cause hidden behind barrier
  | ×
  | (1) ×
  | ×
  | Error types: (1) *fmttests.errNoFmt
Error types: (1) *assert.withAssertionFailure (2) *withstack.withStack (3) *barriers.barrierErr
-- report composition:
*barriers.barrierErr: masked error: ×
<path>:<lineno>: *withstack.withStack (top exception)
*assert.withAssertionFailure
== Extra "error types"
github.com/cockroachdb/errors/barriers/*barriers.barrierErr (*::)
github.com/cockroachdb/errors/withstack/*withstack.withStack (*::)
github.com/cockroachdb/errors/assert/*assert.withAssertionFailure (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "<path>:<lineno> ...funcNN...
Title: "*barriers.barrierErr: ×\nvia *withstack.withStack"
<path>:<lineno>:
   (runtime) goexit()
<path>:<lineno>:
   (testing) tRunner()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven.Walk)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) Walk()
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.TestDatadriven)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) RunTest()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runTestInternal()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runDirectiveOrSubTest()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runDirective()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven.runDirective)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.TestDatadriven.func2) 1()
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.glob.)...funcNN...

run
nofmt innerone innertwo
assertwrap outerthree outerfour

require (?s)outerthree.*outerfour.*
----
&assert.withAssertionFailure{
    cause: &withstack.withStack{
        cause: &errutil.withPrefix{
            cause: &barriers.barrierErr{
                smsg:      "‹innerone›\n‹innertwo›",
                maskedErr: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
            },
            prefix: "assertmsg: ‹outerthree›\n‹outerfour›",
        },
        stack: &stack{...},
    },
}
=====
===== non-redactable formats
=====
== %#v
&assert.withAssertionFailure{
    cause: &withstack.withStack{
        cause: &errutil.withPrefix{
            cause: &barriers.barrierErr{
                smsg:      "‹innerone›\n‹innertwo›",
                maskedErr: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
            },
            prefix: "assertmsg: ‹outerthree›\n‹outerfour›",
        },
        stack: &stack{...},
    },
}
== Error()
assertmsg: outerthree
outerfour: innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
assertmsg: outerthree: innerone
(1) assertion failure
Wraps: (2) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  | runtime.goexit
  | <tab><path>:<lineno>
Wraps: (3) assertmsg: outerthree
  | outerfour
Wraps: (4) innerone
  | innertwo
  | -- cause hidden behind barrier
  | innerone
  | (1) innerone
  |   | innertwo
  | Error types: (1) *fmttests.errNoFmt
Error types: (1) *assert.withAssertionFailure (2) *withstack.withStack (3) *errutil.withPrefix (4) *barriers.barrierErr
== %#v via Formattable() = %#v, good
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() == %+v, good
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
assertmsg: ‹outerthree›
‹outerfour›: ‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v
assertmsg: ‹outerthree›: ‹innerone›
(1) assertion failure
Wraps: (2) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  | runtime.goexit
  | <tab><path>:<lineno>
Wraps: (3) assertmsg: ‹outerthree›
  | ‹outerfour›
Wraps: (4) ‹innerone›
  | ‹innertwo›
  | -- cause hidden behind barrier
  | ‹innerone›
  | (1) ‹innerone›
  | ‹  | innertwo›
  | Error types: (1) *fmttests.errNoFmt
Error types: (1) *assert.withAssertionFailure (2) *withstack.withStack (3) *errutil.withPrefix (4) *barriers.barrierErr
=====
===== Sentry reporting
=====
== Message payload
<path>:<lineno>: assertmsg: ×: ×
(1) assertion failure
Wraps: (2) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  | runtime.goexit
  | <tab><path>:<lineno>
Wraps: (3) assertmsg: ×
  | ×
Wraps: (4) ×
  | ×
  | -- cause hidden behind barrier
  | ×
  | (1) ×
  | ×
  | Error types: (1) *fmttests.errNoFmt
Error types: (1) *assert.withAssertionFailure (2) *withstack.withStack (3) *errutil.withPrefix (4) *barriers.barrierErr
-- report composition:
*barriers.barrierErr: masked error: ×
*errutil.withPrefix: assertmsg: ×
<path>:<lineno>: *withstack.withStack (top exception)
*assert.withAssertionFailure
== Extra "error types"
github.com/cockroachdb/errors/barriers/*barriers.barrierErr (*::)
github.com/cockroachdb/errors/errutil/*errutil.withPrefix (*::)
github.com/cockroachdb/errors/withstack/*withstack.withStack (*::)
github.com/cockroachdb/errors/assert/*assert.withAssertionFailure (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "<path>:<lineno> ...funcNN...
Title: "*barriers.barrierErr: assertmsg: ×: ×\nvia *withstack.withStack"
<path>:<lineno>:
   (runtime) goexit()
<path>:<lineno>:
   (testing) tRunner()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven.Walk)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) Walk()
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.TestDatadriven)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) RunTest()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runTestInternal()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runDirectiveOrSubTest()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runDirective()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven.runDirective)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.TestDatadriven.func2) 1()
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.glob.)...funcNN...

run
nofmt innerone innertwo
barrier outerthree outerfour

require (?s)
----
&barriers.barrierErr{
    smsg:      "‹innerone›\n‹innertwo›",
    maskedErr: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
}
=====
===== non-redactable formats
=====
== %#v
&barriers.barrierErr{
    smsg:      "‹innerone›\n‹innertwo›",
    maskedErr: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
}
== Error()
innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
innerone
(1) innerone
  | innertwo
  | -- cause hidden behind barrier
  | innerone
  | (1) innerone
  |   | innertwo
  | Error types: (1) *fmttests.errNoFmt
Error types: (1) *barriers.barrierErr
== %#v via Formattable() = %#v, good
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() == %+v, good
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v
‹innerone›
(1) ‹innerone›
  | ‹innertwo›
  | -- cause hidden behind barrier
  | ‹innerone›
  | (1) ‹innerone›
  | ‹  | innertwo›
  | Error types: (1) *fmttests.errNoFmt
Error types: (1) *barriers.barrierErr
=====
===== Sentry reporting
=====
== Message payload
×
(1) ×
  | ×
  | -- cause hidden behind barrier
  | ×
  | (1) ×
  | ×
  | Error types: (1) *fmttests.errNoFmt
Error types: (1) *barriers.barrierErr
-- report composition:
*barriers.barrierErr: masked error: ×
== Extra "error types"
github.com/cockroachdb/errors/barriers/*barriers.barrierErr (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*barriers.barrierErr"
Title: "×"
(NO STACKTRACE)

run
nofmt innerone innertwo
delegate outerthree outerfour

require (?s)outerthree.*outerfour.*
----
&fmttests.werrDelegate{
    wrapped: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    msg:     "outerthree\nouterfour",
}
=====
===== non-redactable formats
=====
== %#v
&fmttests.werrDelegate{
    wrapped: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    msg:     "outerthree\nouterfour",
}
== Error()
outerthree
outerfour: innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
outerthree: innerone
(1) outerthree
  | outerfour
  | -- multi-line
  | wrapper payload
Wraps: (2) innerone
  | innertwo
Error types: (1) *fmttests.werrDelegate (2) *fmttests.errNoFmt
== %#v via Formattable() = %#v, good
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() == %+v, good
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
‹outerthree›
‹outerfour›: ‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v
‹outerthree›: ‹innerone›
(1) ‹outerthree›
‹  | outerfour›
‹  | -- multi-line›
‹  | wrapper payload›
Wraps: (2) ‹innerone›
‹  | innertwo›
Error types: (1) *fmttests.werrDelegate (2) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
×: ×
(1) ×
×
×
×
Wraps: (2) ×
×
Error types: (1) *fmttests.werrDelegate (2) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
*fmttests.werrDelegate
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.werrDelegate (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errNoFmt"
Title: "×: ×"
(NO STACKTRACE)

run
nofmt innerone innertwo
delegate-empty outerthree outerfour

require (?s)
----
&fmttests.werrDelegateEmpty{
    wrapped: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
}
=====
===== non-redactable formats
=====
== %#v
&fmttests.werrDelegateEmpty{
    wrapped: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
}
== Error()
innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
innerone
(1)
Wraps: (2) innerone
  | innertwo
Error types: (1) *fmttests.werrDelegateEmpty (2) *fmttests.errNoFmt
== %#v via Formattable() = %#v, good
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() == %+v, good
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v
‹innerone›
(1)
Wraps: (2) ‹innerone›
‹  | innertwo›
Error types: (1) *fmttests.werrDelegateEmpty (2) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
×
(1)
Wraps: (2) ×
×
Error types: (1) *fmttests.werrDelegateEmpty (2) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
*fmttests.werrDelegateEmpty
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.werrDelegateEmpty (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errNoFmt"
Title: "×"
(NO STACKTRACE)

run
nofmt innerone innertwo
delegate-noprefix outerthree outerfour

require (?s)
----
&fmttests.werrDelegateNoPrefix{
    wrapped: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
}
=====
===== non-redactable formats
=====
== %#v
&fmttests.werrDelegateNoPrefix{
    wrapped: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
}
== Error()
innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
innerone
(1) detail
Wraps: (2) innerone
  | innertwo
Error types: (1) *fmttests.werrDelegateNoPrefix (2) *fmttests.errNoFmt
== %#v via Formattable() = %#v, good
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() == %+v, good
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v
‹innerone›
(1) ‹detail›
Wraps: (2) ‹innerone›
‹  | innertwo›
Error types: (1) *fmttests.werrDelegateNoPrefix (2) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
×
(1) ×
Wraps: (2) ×
×
Error types: (1) *fmttests.werrDelegateNoPrefix (2) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
*fmttests.werrDelegateNoPrefix
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.werrDelegateNoPrefix (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errNoFmt"
Title: "×"
(NO STACKTRACE)

run
nofmt innerone innertwo
detail outerthree outerfour

require (?s)
----
&hintdetail.withDetail{
    cause:  &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    detail: "outerthree\nouterfour",
}
=====
===== non-redactable formats
=====
== %#v
&hintdetail.withDetail{
    cause:  &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    detail: "outerthree\nouterfour",
}
== Error()
innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
innerone
(1) outerthree
  | outerfour
Wraps: (2) innerone
  | innertwo
Error types: (1) *hintdetail.withDetail (2) *fmttests.errNoFmt
== %#v via Formattable() = %#v, good
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() == %+v, good
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v
‹innerone›
(1) ‹outerthree›
‹  | outerfour›
Wraps: (2) ‹innerone›
‹  | innertwo›
Error types: (1) *hintdetail.withDetail (2) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
×
(1) ×
×
Wraps: (2) ×
×
Error types: (1) *hintdetail.withDetail (2) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
*hintdetail.withDetail
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
github.com/cockroachdb/errors/hintdetail/*hintdetail.withDetail (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errNoFmt"
Title: "×"
(NO STACKTRACE)

run
nofmt innerone innertwo
domain outerthree outerfour

require (?s)
----
&domains.withDomain{
    cause:  &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    domain: "mydomain",
}
=====
===== non-redactable formats
=====
== %#v
&domains.withDomain{
    cause:  &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    domain: "mydomain",
}
== Error()
innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
innerone
(1) mydomain
Wraps: (2) innerone
  | innertwo
Error types: (1) *domains.withDomain (2) *fmttests.errNoFmt
== %#v via Formattable() = %#v, good
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() == %+v, good
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v
‹innerone›
(1) mydomain
Wraps: (2) ‹innerone›
‹  | innertwo›
Error types: (1) *domains.withDomain (2) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
×
(1) mydomain
Wraps: (2) ×
×
Error types: (1) *domains.withDomain (2) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
*domains.withDomain: mydomain
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
github.com/cockroachdb/errors/domains/*domains.withDomain (*::mydomain)
== Exception 1 (Module: "mydomain")
Type: "*fmttests.errNoFmt"
Title: "×"
(NO STACKTRACE)

run
nofmt innerone innertwo
elided-cause outerthree outerfour

require (?s)outerthree.*outerfour
----
&fmttests.werrWithElidedCause{
    wrapped: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    msg:     "outerthree\nouterfour",
}
=====
===== non-redactable formats
=====
== %#v
&fmttests.werrWithElidedCause{
    wrapped: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    msg:     "outerthree\nouterfour",
}
== Error()
outerthree
outerfour
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
outerthree
(1) outerthree
  | outerfour
Wraps: (2) innerone
  | innertwo
Error types: (1) *fmttests.werrWithElidedCause (2) *fmttests.errNoFmt
== %#v via Formattable() = %#v, good
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() == %+v, good
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
‹outerthree›
‹outerfour›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v
‹outerthree›
(1) ‹outerthree›
‹  | outerfour›
Wraps: (2) ‹innerone›
‹  | innertwo›
Error types: (1) *fmttests.werrWithElidedCause (2) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
×
(1) ×
×
Wraps: (2) ×
×
Error types: (1) *fmttests.werrWithElidedCause (2) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
*fmttests.werrWithElidedCause
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.werrWithElidedCause (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errNoFmt"
Title: "×"
(NO STACKTRACE)

run
nofmt innerone innertwo
empty outerthree outerfour

require (?s)
----
&fmttests.werrEmpty{
    wrapped: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
}
=====
===== non-redactable formats
=====
== %#v
&fmttests.werrEmpty{
    wrapped: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
}
== Error()
innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
innerone
(1)
Wraps: (2) innerone
  | innertwo
Error types: (1) *fmttests.werrEmpty (2) *fmttests.errNoFmt
== %#v via Formattable() = %#v, good
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() == %+v, good
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v
‹innerone›
(1)
Wraps: (2) ‹innerone›
‹  | innertwo›
Error types: (1) *fmttests.werrEmpty (2) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
×
(1)
Wraps: (2) ×
×
Error types: (1) *fmttests.werrEmpty (2) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
*fmttests.werrEmpty
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.werrEmpty (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errNoFmt"
Title: "×"
(NO STACKTRACE)

run
nofmt innerone innertwo
fmt outerthree outerfour

require (?s)outerthree.*outerfour.*
----
&fmttests.werrFmt{
    cause: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    msg:   "outerthree\nouterfour",
}
=====
===== non-redactable formats
=====
== %#v
&fmttests.werrFmt{
    cause: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    msg:   "outerthree\nouterfour",
}
== Error()
outerthree
outerfour: innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
outerthree: innerone
(1) outerthree
  | outerfour
  | -- this is outerthree
  | outerfour's
  | multi-line wrapper payload
Wraps: (2) innerone
  | innertwo
Error types: (1) *fmttests.werrFmt (2) *fmttests.errNoFmt
== %#v via Formattable() = %#v, good
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() == %+v, good
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
‹outerthree›
‹outerfour›: ‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v
‹outerthree›: ‹innerone›
(1) ‹outerthree›
‹  | outerfour›
‹  | -- this is outerthree›
‹  | outerfour's›
‹  | multi-line wrapper payload›
Wraps: (2) ‹innerone›
‹  | innertwo›
Error types: (1) *fmttests.werrFmt (2) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
×: ×
(1) ×
×
×
×
×
Wraps: (2) ×
×
Error types: (1) *fmttests.werrFmt (2) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
*fmttests.werrFmt
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.werrFmt (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errNoFmt"
Title: "×: ×"
(NO STACKTRACE)

run
nofmt innerone innertwo
fmt-old outerthree outerfour

accept %\+v via Formattable.*IRREGULAR: not same as %\+v
accept %\#v via Formattable.*IRREGULAR: not same as %\#v

require (?s)outerthree.*outerfour.*
----
&fmttests.werrFmto{
    cause: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    msg:   "outerthree\nouterfour",
}
=====
===== non-redactable formats
=====
== %#v
"outerthree\nouterfour: innerone\ninnertwo"
== Error()
outerthree
outerfour: innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
innerone
innertwo
-- this is outerthree
outerfour's
multi-line payload (fmt)
== %#v via Formattable() (IRREGULAR: not same as %#v)
&fmttests.werrFmto{
    cause: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    msg:   "outerthree\nouterfour",
}
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() (IRREGULAR: not same as %+v)
outerthree: innerone
(1) outerthree
  | outerfour
Wraps: (2) innerone
  | innertwo
Error types: (1) *fmttests.werrFmto (2) *fmttests.errNoFmt
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
‹outerthree›
‹outerfour›: ‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v via Formattable()
‹outerthree›: ‹innerone›
(1) ‹outerthree›
‹  | outerfour›
Wraps: (2) ‹innerone›
‹  | innertwo›
Error types: (1) *fmttests.werrFmto (2) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
×: ×
(1) ×
×
Wraps: (2) ×
×
Error types: (1) *fmttests.werrFmto (2) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
*fmttests.werrFmto
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.werrFmto (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errNoFmt"
Title: "×: ×"
(NO STACKTRACE)

run
nofmt innerone innertwo
fmt-old-delegate outerthree outerfour

accept %\+v via Formattable.*IRREGULAR: not same as %\+v
accept %\#v via Formattable.*IRREGULAR: not same as %\#v

require (?s)outerthree.*outerfour.*
----
&fmttests.werrFmtoDelegate{
    cause: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    msg:   "outerthree\nouterfour",
}
=====
===== non-redactable formats
=====
== %#v
"outerthree\nouterfour: innerone\ninnertwo"
== Error()
outerthree
outerfour: innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
innerone
innertwo
-- this is outerthree
outerfour's
multi-line wrapper payload
== %#v via Formattable() (IRREGULAR: not same as %#v)
&fmttests.werrFmtoDelegate{
    cause: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    msg:   "outerthree\nouterfour",
}
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() (IRREGULAR: not same as %+v)
outerthree: innerone
(1) outerthree
  | outerfour
Wraps: (2) innerone
  | innertwo
Error types: (1) *fmttests.werrFmtoDelegate (2) *fmttests.errNoFmt
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
‹outerthree›
‹outerfour›: ‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v via Formattable()
‹outerthree›: ‹innerone›
(1) ‹outerthree›
‹  | outerfour›
Wraps: (2) ‹innerone›
‹  | innertwo›
Error types: (1) *fmttests.werrFmtoDelegate (2) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
×: ×
(1) ×
×
Wraps: (2) ×
×
Error types: (1) *fmttests.werrFmtoDelegate (2) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
*fmttests.werrFmtoDelegate
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.werrFmtoDelegate (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errNoFmt"
Title: "×: ×"
(NO STACKTRACE)

run
nofmt innerone innertwo
fmt-partial outerthree outerfour

require (?s)outerthree.*outerfour.*
----
&fmttests.werrFmtp{
    cause: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    msg:   "outerthree\nouterfour",
}
=====
===== non-redactable formats
=====
== %#v
&fmttests.werrFmtp{
    cause: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    msg:   "outerthree\nouterfour",
}
== Error()
outerthree
outerfour: innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
outerthree: innerone
(1) outerthree
  | outerfour
Wraps: (2) innerone
  | innertwo
Error types: (1) *fmttests.werrFmtp (2) *fmttests.errNoFmt
== %#v via Formattable() = %#v, good
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() == %+v, good
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
‹outerthree›
‹outerfour›: ‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v
‹outerthree›: ‹innerone›
(1) ‹outerthree›
‹  | outerfour›
Wraps: (2) ‹innerone›
‹  | innertwo›
Error types: (1) *fmttests.werrFmtp (2) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
×: ×
(1) ×
×
Wraps: (2) ×
×
Error types: (1) *fmttests.werrFmtp (2) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
*fmttests.werrFmtp
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.werrFmtp (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errNoFmt"
Title: "×: ×"
(NO STACKTRACE)

run
nofmt innerone innertwo
go-errorf outerthree outerfour

accept %\+v via Formattable.*IRREGULAR: not same as %\+v
accept %\#v via Formattable.*IRREGULAR: not same as %\#v

require (?s)outerthree.*outerfour.*
----
&fmt.wrapError{
    msg: "outerthree\nouterfour - innerone\ninnertwo",
    err: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
}
=====
===== non-redactable formats
=====
== %#v
&fmt.wrapError{msg:"outerthree\nouterfour - innerone\ninnertwo", err:(*fmttests.errNoFmt)(0xAAAABBBB)}
== Error()
outerthree
outerfour - innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v = Error(), ok
== %#v via Formattable() (IRREGULAR: not same as %#v)
&fmt.wrapError{
    msg: "outerthree\nouterfour - innerone\ninnertwo",
    err: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
}
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() (IRREGULAR: not same as %+v)
outerthree
(1) outerthree
  | outerfour - innerone
  | innertwo
Wraps: (2) innerone
  | innertwo
Error types: (1) *fmt.wrapError (2) *fmttests.errNoFmt
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
‹outerthree›
‹outerfour - innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v via Formattable()
‹outerthree›
(1) ‹outerthree›
‹  | outerfour - innerone›
‹  | innertwo›
Wraps: (2) ‹innerone›
‹  | innertwo›
Error types: (1) *fmt.wrapError (2) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
×
(1) ×
×
×
Wraps: (2) ×
×
Error types: (1) *fmt.wrapError (2) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
*fmt.wrapError
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
fmt/*fmt.wrapError (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errNoFmt"
Title: "×"
(NO STACKTRACE)

run
nofmt innerone innertwo
go-errorf-multi outerthree outerfour

accept %\+v via Formattable.*IRREGULAR: not same as %\+v
accept %\#v via Formattable.*IRREGULAR: not same as %\#v

require (?s)outerthree.*outerfour.*
----
&fmt.wrapErrors{
    msg:  "outerthree\nouterfour - innerone\ninnertwo sibling error in wrapper",
    errs: {
        &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
        &errors.fundamental{
            msg:   "sibling error in wrapper",
            stack: &stack{...},
        },
    },
}
=====
===== non-redactable formats
=====
== %#v
&fmt.wrapErrors{msg:"outerthree\nouterfour - innerone\ninnertwo sibling error in wrapper", errs:[]error{(*fmttests.errNoFmt)(0xAAAABBBB), (*errors.fundamental)(0xAAAABBBB)}}
== Error()
outerthree
outerfour - innerone
innertwo sibling error in wrapper
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v = Error(), ok
== %#v via Formattable() (IRREGULAR: not same as %#v)
&fmt.wrapErrors{
    msg:  "outerthree\nouterfour - innerone\ninnertwo sibling error in wrapper",
    errs: {
        &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
        &errors.fundamental{
            msg:   "sibling error in wrapper",
            stack: &stack{...},
        },
    },
}
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() (IRREGULAR: not same as %+v)
outerthree
(1) outerthree
  | outerfour - innerone
  | innertwo sibling error in wrapper
Wraps: (2) sibling error in wrapper
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  | runtime.goexit
  | <tab><path>:<lineno>
Wraps: (3) innerone
  | innertwo
Error types: (1) *fmt.wrapErrors (2) *errors.fundamental (3) *fmttests.errNoFmt
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
‹outerthree›
‹outerfour - innerone›
‹innertwo sibling error in wrapper›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v via Formattable()
‹outerthree›
(1) ‹outerthree›
‹  | outerfour - innerone›
‹  | innertwo sibling error in wrapper›
Wraps: (2) ‹sibling error in wrapper›
‹  | github.com/cockroachdb/errors/fmttests.glob..func23›
‹  | <tab><path>:<lineno>›
‹  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1›
‹  | <tab><path>:<lineno>›
‹  | github.com/cockroachdb/datadriven.runDirective.func1›
‹  | <tab><path>:<lineno>›
‹  | github.com/cockroachdb/datadriven.runDirective›
‹  | <tab><path>:<lineno>›
‹  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest›
‹  | <tab><path>:<lineno>›
‹  | github.com/cockroachdb/datadriven.runTestInternal›
‹  | <tab><path>:<lineno>›
‹  | github.com/cockroachdb/datadriven.RunTest›
‹  | <tab><path>:<lineno>›
‹  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2›
‹  | <tab><path>:<lineno>›
‹  | github.com/cockroachdb/datadriven.Walk›
‹  | <tab><path>:<lineno>›
‹  | github.com/cockroachdb/datadriven.Walk.func1›
‹  | <tab><path>:<lineno>›
‹  | testing.tRunner›
‹  | <tab><path>:<lineno>›
‹  | runtime.goexit›
‹  | <tab><path>:<lineno>›
Wraps: (3) ‹innerone›
‹  | innertwo›
Error types: (1) *fmt.wrapErrors (2) *errors.fundamental (3) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
×
(1) ×
×
×
Wraps: (2) ×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
Wraps: (3) ×
×
Error types: (1) *fmt.wrapErrors (2) *errors.fundamental (3) *fmttests.errNoFmt
-- report composition:
<path>:<lineno>: *errors.fundamental (top exception)
*fmttests.errNoFmt
*fmt.wrapErrors
== Extra "error types"
github.com/pkg/errors/*errors.fundamental (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
fmt/*fmt.wrapErrors (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "<path>:<lineno> ...funcNN...
Title: "*errors.fundamental: ×"
<path>:<lineno>:
   (runtime) goexit()
<path>:<lineno>:
   (testing) tRunner()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven.Walk)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) Walk()
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.TestDatadriven)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) RunTest()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runTestInternal()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runDirectiveOrSubTest()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runDirective()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven.runDirective)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.TestDatadriven.func2) 1()
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.glob.)...funcNN...

run
nofmt innerone innertwo
go-errorf-suffix outerthree outerfour

accept %\+v via Formattable.*IRREGULAR: not same as %\+v
accept %\#v via Formattable.*IRREGULAR: not same as %\#v

require (?s).*outerthree.*outerfour
----
&fmt.wrapError{
    msg: "innerone\ninnertwo - outerthree\nouterfour",
    err: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
}
=====
===== non-redactable formats
=====
== %#v
&fmt.wrapError{msg:"innerone\ninnertwo - outerthree\nouterfour", err:(*fmttests.errNoFmt)(0xAAAABBBB)}
== Error()
innerone
innertwo - outerthree
outerfour
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v = Error(), ok
== %#v via Formattable() (IRREGULAR: not same as %#v)
&fmt.wrapError{
    msg: "innerone\ninnertwo - outerthree\nouterfour",
    err: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
}
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() (IRREGULAR: not same as %+v)
innerone
(1) innerone
  | innertwo - outerthree
  | outerfour
Wraps: (2) innerone
  | innertwo
Error types: (1) *fmt.wrapError (2) *fmttests.errNoFmt
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
‹innerone›
‹innertwo - outerthree›
‹outerfour›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v via Formattable()
‹innerone›
(1) ‹innerone›
‹  | innertwo - outerthree›
‹  | outerfour›
Wraps: (2) ‹innerone›
‹  | innertwo›
Error types: (1) *fmt.wrapError (2) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
×
(1) ×
×
×
Wraps: (2) ×
×
Error types: (1) *fmt.wrapError (2) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
*fmt.wrapError
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
fmt/*fmt.wrapError (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errNoFmt"
Title: "×"
(NO STACKTRACE)

run
nofmt innerone innertwo
goerr outerthree outerfour

accept %\+v via Formattable.*IRREGULAR: not same as %\+v
accept %\#v via Formattable.*IRREGULAR: not same as %\#v

require (?s)outerthree.*outerfour.*
----
&fmt.wrapError{
    msg: "outerthree\nouterfour: innerone\ninnertwo",
    err: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
}
=====
===== non-redactable formats
=====
== %#v
&fmt.wrapError{msg:"outerthree\nouterfour: innerone\ninnertwo", err:(*fmttests.errNoFmt)(0xAAAABBBB)}
== Error()
outerthree
outerfour: innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v = Error(), ok
== %#v via Formattable() (IRREGULAR: not same as %#v)
&fmt.wrapError{
    msg: "outerthree\nouterfour: innerone\ninnertwo",
    err: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
}
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() (IRREGULAR: not same as %+v)
outerthree: innerone
(1) outerthree
  | outerfour
Wraps: (2) innerone
  | innertwo
Error types: (1) *fmt.wrapError (2) *fmttests.errNoFmt
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
‹outerthree›
‹outerfour›: ‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v via Formattable()
‹outerthree›: ‹innerone›
(1) ‹outerthree›
‹  | outerfour›
Wraps: (2) ‹innerone›
‹  | innertwo›
Error types: (1) *fmt.wrapError (2) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
×: ×
(1) ×
×
Wraps: (2) ×
×
Error types: (1) *fmt.wrapError (2) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
*fmt.wrapError
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
fmt/*fmt.wrapError (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errNoFmt"
Title: "×: ×"
(NO STACKTRACE)

run
nofmt innerone innertwo
handled-domain outerthree outerfour

require (?s)
----
&domains.withDomain{
    cause: &barriers.barrierErr{
        smsg:      "‹innerone›\n‹innertwo›",
        maskedErr: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    },
    domain: "error domain: pkg <path>",
}
=====
===== non-redactable formats
=====
== %#v
&domains.withDomain{
    cause: &barriers.barrierErr{
        smsg:      "‹innerone›\n‹innertwo›",
        maskedErr: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    },
    domain: "error domain: pkg <path>",
}
== Error()
innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
innerone
(1) error domain: pkg <path>
Wraps: (2) innerone
  | innertwo
  | -- cause hidden behind barrier
  | innerone
  | (1) innerone
  |   | innertwo
  | Error types: (1) *fmttests.errNoFmt
Error types: (1) *domains.withDomain (2) *barriers.barrierErr
== %#v via Formattable() = %#v, good
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() == %+v, good
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v
‹innerone›
(1) error domain: pkg <path>
Wraps: (2) ‹innerone›
  | ‹innertwo›
  | -- cause hidden behind barrier
  | ‹innerone›
  | (1) ‹innerone›
  | ‹  | innertwo›
  | Error types: (1) *fmttests.errNoFmt
Error types: (1) *domains.withDomain (2) *barriers.barrierErr
=====
===== Sentry reporting
=====
== Message payload
×
(1) error domain: pkg <path>
Wraps: (2) ×
  | ×
  | -- cause hidden behind barrier
  | ×
  | (1) ×
  | ×
  | Error types: (1) *fmttests.errNoFmt
Error types: (1) *domains.withDomain (2) *barriers.barrierErr
-- report composition:
*barriers.barrierErr: masked error: ×
*domains.withDomain: error domain: pkg <path>
== Extra "error types"
github.com/cockroachdb/errors/barriers/*barriers.barrierErr (*::)
github.com/cockroachdb/errors/domains/*domains.withDomain (*::error domain: pkg <path>)
== Exception 1 (Module: "error domain: pkg <path>")
Type: "*barriers.barrierErr"
Title: "×"
(NO STACKTRACE)

run
nofmt innerone innertwo
hint outerthree outerfour

require (?s)
----
&hintdetail.withHint{
    cause: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    hint:  "outerthree\nouterfour",
}
=====
===== non-redactable formats
=====
== %#v
&hintdetail.withHint{
    cause: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    hint:  "outerthree\nouterfour",
}
== Error()
innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
innerone
(1) outerthree
  | outerfour
Wraps: (2) innerone
  | innertwo
Error types: (1) *hintdetail.withHint (2) *fmttests.errNoFmt
== %#v via Formattable() = %#v, good
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() == %+v, good
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v
‹innerone›
(1) ‹outerthree›
‹  | outerfour›
Wraps: (2) ‹innerone›
‹  | innertwo›
Error types: (1) *hintdetail.withHint (2) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
×
(1) ×
×
Wraps: (2) ×
×
Error types: (1) *hintdetail.withHint (2) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
*hintdetail.withHint
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
github.com/cockroachdb/errors/hintdetail/*hintdetail.withHint (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errNoFmt"
Title: "×"
(NO STACKTRACE)

run
nofmt innerone innertwo
issuelink outerthree outerfour

require (?s)
----
&issuelink.withIssueLink{
    cause:     &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    IssueLink: issuelink.IssueLink{IssueURL:"https://mysite", Detail:"outerthree\nouterfour"},
}
=====
===== non-redactable formats
=====
== %#v
&issuelink.withIssueLink{
    cause:     &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    IssueLink: issuelink.IssueLink{IssueURL:"https://mysite", Detail:"outerthree\nouterfour"},
}
== Error()
innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
innerone
(1) issue: https://mysite
  | detail: outerthree
  | outerfour
Wraps: (2) innerone
  | innertwo
Error types: (1) *issuelink.withIssueLink (2) *fmttests.errNoFmt
== %#v via Formattable() = %#v, good
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() == %+v, good
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v
‹innerone›
(1) issue: https://mysite
  | detail: outerthree
  | outerfour
Wraps: (2) ‹innerone›
‹  | innertwo›
Error types: (1) *issuelink.withIssueLink (2) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
×
(1) issue: https://mysite
  | detail: outerthree
  | outerfour
Wraps: (2) ×
×
Error types: (1) *issuelink.withIssueLink (2) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
*issuelink.withIssueLink: https://mysite
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
github.com/cockroachdb/errors/issuelink/*issuelink.withIssueLink (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errNoFmt"
Title: "×"
(NO STACKTRACE)

run
nofmt innerone innertwo
join outerthree outerfour

accept %\+v via Formattable.*IRREGULAR: not same as %\+v
accept %\#v via Formattable.*IRREGULAR: not same as %\#v

require (?s)
----
&join.joinError{
    errs: {
        &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
        &withstack.withStack{
            cause: &errutil.leafError{msg:"outerthree\nouterfour"},
            stack: &stack{...},
        },
    },
}
=====
===== non-redactable formats
=====
== %#v
&join.joinError{
    errs: {
        &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
        &withstack.withStack{
            cause: &errutil.leafError{msg:"outerthree\nouterfour"},
            stack: &stack{...},
        },
    },
}
== Error()
innerone
innertwo
outerthree
outerfour
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
innerone
(1) innerone
  | innertwo
  | outerthree
  | outerfour
Wraps: (2) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  | runtime.goexit
  | <tab><path>:<lineno>
└─ Wraps: (3) outerthree
  | outerfour
Wraps: (4) innerone
  | innertwo
Error types: (1) *join.joinError (2) *withstack.withStack (3) *errutil.leafError (4) *fmttests.errNoFmt
== %#v via Formattable() = %#v, good
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() == %+v, good
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
‹innerone›
‹innertwo›
outerthree
outerfour
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v
‹innerone›
(1) ‹innerone›
  | ‹innertwo›
  | outerthree
  | outerfour
Wraps: (2) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  | runtime.goexit
  | <tab><path>:<lineno>
└─ Wraps: (3) outerthree
  | outerfour
Wraps: (4) ‹innerone›
‹  | innertwo›
Error types: (1) *join.joinError (2) *withstack.withStack (3) *errutil.leafError (4) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
×
(1) ×
  | ×
  | outerthree
  | outerfour
Wraps: (2) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  | runtime.goexit
  | <tab><path>:<lineno>
└─ Wraps: (3) outerthree
  | outerfour
Wraps: (4) ×
×
Error types: (1) *join.joinError (2) *withstack.withStack (3) *errutil.leafError (4) *fmttests.errNoFmt
-- report composition:
*errutil.leafError: outerthree
<path>:<lineno>: *withstack.withStack (top exception)
*fmttests.errNoFmt
*join.joinError
== Extra "error types"
github.com/cockroachdb/errors/errutil/*errutil.leafError (*::)
github.com/cockroachdb/errors/withstack/*withstack.withStack (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
github.com/cockroachdb/errors/join/*join.joinError (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "<path>:<lineno> ...funcNN...
Title: "*errutil.leafError: ×\nvia *withstack.withStack"
<path>:<lineno>:
   (runtime) goexit()
<path>:<lineno>:
   (testing) tRunner()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven.Walk)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) Walk()
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.TestDatadriven)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) RunTest()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runTestInternal()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runDirectiveOrSubTest()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runDirective()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven.runDirective)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.TestDatadriven.func2) 1()
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.glob.)...funcNN...

run
nofmt innerone innertwo
migrated outerthree outerfour

require (?s)
----
&fmttests.werrMigrated{
    cause: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
}
=====
===== non-redactable formats
=====
== %#v
&fmttests.werrMigrated{
    cause: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
}
== Error()
innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
innerone
(1)
Wraps: (2) innerone
  | innertwo
Error types: (1) *fmttests.werrMigrated (2) *fmttests.errNoFmt
== %#v via Formattable() = %#v, good
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() == %+v, good
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v
‹innerone›
(1)
Wraps: (2) ‹innerone›
‹  | innertwo›
Error types: (1) *fmttests.werrMigrated (2) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
×
(1)
Wraps: (2) ×
×
Error types: (1) *fmttests.werrMigrated (2) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
*fmttests.werrMigrated
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.werrMigrated (some/previous/path/prevpkg.prevType::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errNoFmt"
Title: "×"
(NO STACKTRACE)

run
nofmt innerone innertwo
msg outerthree outerfour

require (?s)outerthree.*outerfour.*
----
&errutil.withPrefix{
    cause:  &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    prefix: "outerthree\nouterfour",
}
=====
===== non-redactable formats
=====
== %#v
&errutil.withPrefix{
    cause:  &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    prefix: "outerthree\nouterfour",
}
== Error()
outerthree
outerfour: innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
outerthree: innerone
(1) outerthree
  | outerfour
Wraps: (2) innerone
  | innertwo
Error types: (1) *errutil.withPrefix (2) *fmttests.errNoFmt
== %#v via Formattable() = %#v, good
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() == %+v, good
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
outerthree
outerfour: ‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v
outerthree: ‹innerone›
(1) outerthree
  | outerfour
Wraps: (2) ‹innerone›
‹  | innertwo›
Error types: (1) *errutil.withPrefix (2) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
outerthree: ×
(1) outerthree
  | outerfour
Wraps: (2) ×
×
Error types: (1) *errutil.withPrefix (2) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
*errutil.withPrefix: outerthree
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
github.com/cockroachdb/errors/errutil/*errutil.withPrefix (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errNoFmt"
Title: "outerthree: ×"
(NO STACKTRACE)

run
nofmt innerone innertwo
multi-cause outerthree outerfour

require (?s)outerthree.*outerfour.*
----
&fmttests.errMultiCause{
    causes: {
        &fmttests.errMultiCause{
            causes: {
                &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
                &withstack.withStack{
                    cause: &errutil.leafError{msg:"outerthree\nouterfour"},
                    stack: &stack{...},
                },
            },
            msg:   "C",
            elide: false,
        },
        &fmttests.errMultiCause{
            causes: {
                &withstack.withStack{
                    cause: &errutil.leafError{msg:"included 1"},
                    stack: &stack{...},
                },
                &withstack.withStack{
                    cause: &errutil.leafError{msg:"included 2"},
                    stack: &stack{...},
                },
            },
            msg:   "B",
            elide: false,
        },
    },
    msg:   "A",
    elide: false,
}
=====
===== non-redactable formats
=====
== %#v
&fmttests.errMultiCause{
    causes: {
        &fmttests.errMultiCause{
            causes: {
                &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
                &withstack.withStack{
                    cause: &errutil.leafError{msg:"outerthree\nouterfour"},
                    stack: &stack{...},
                },
            },
            msg:   "C",
            elide: false,
        },
        &fmttests.errMultiCause{
            causes: {
                &withstack.withStack{
                    cause: &errutil.leafError{msg:"included 1"},
                    stack: &stack{...},
                },
                &withstack.withStack{
                    cause: &errutil.leafError{msg:"included 2"},
                    stack: &stack{...},
                },
            },
            msg:   "B",
            elide: false,
        },
    },
    msg:   "A",
    elide: false,
}
== Error()
A: B: included 2: included 1: C: outerthree
outerfour: innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
A: B: included 2: included 1: C: outerthree: innerone
(1) A
Wraps: (2) B
└─ Wraps: (3) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  └─ Wraps: (4) included 2
└─ Wraps: (5) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | [...repeated from below...]
  └─ Wraps: (6) included 1
Wraps: (7) C
└─ Wraps: (8) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  | runtime.goexit
  | <tab><path>:<lineno>
  └─ Wraps: (9) outerthree
  | outerfour
└─ Wraps: (10) innerone
  | innertwo
Error types: (1) *fmttests.errMultiCause (2) *fmttests.errMultiCause (3) *withstack.withStack (4) *errutil.leafError (5) *withstack.withStack (6) *errutil.leafError (7) *fmttests.errMultiCause (8) *withstack.withStack (9) *errutil.leafError (10) *fmttests.errNoFmt
== %#v via Formattable() = %#v, good
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() == %+v, good
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
‹A›: ‹B›: included 2: included 1: ‹C›: outerthree
outerfour: ‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v
‹A›: ‹B›: included 2: included 1: ‹C›: outerthree: ‹innerone›
(1) ‹A›
Wraps: (2) ‹B›
└─ Wraps: (3) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  └─ Wraps: (4) included 2
└─ Wraps: (5) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | [...repeated from below...]
  └─ Wraps: (6) included 1
Wraps: (7) ‹C›
└─ Wraps: (8) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  | runtime.goexit
  | <tab><path>:<lineno>
  └─ Wraps: (9) outerthree
  | outerfour
└─ Wraps: (10) ‹innerone›
‹  | innertwo›
Error types: (1) *fmttests.errMultiCause (2) *fmttests.errMultiCause (3) *withstack.withStack (4) *errutil.leafError (5) *withstack.withStack (6) *errutil.leafError (7) *fmttests.errMultiCause (8) *withstack.withStack (9) *errutil.leafError (10) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
×: ×: included 2: included 1: ×: outerthree: ×
(1) ×
Wraps: (2) ×
└─ Wraps: (3) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  └─ Wraps: (4) included 2
└─ Wraps: (5) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | [...repeated from below...]
  └─ Wraps: (6) included 1
Wraps: (7) ×
└─ Wraps: (8) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  | runtime.goexit
  | <tab><path>:<lineno>
  └─ Wraps: (9) outerthree
  | outerfour
└─ Wraps: (10) ×
×
Error types: (1) *fmttests.errMultiCause (2) *fmttests.errMultiCause (3) *withstack.withStack (4) *errutil.leafError (5) *withstack.withStack (6) *errutil.leafError (7) *fmttests.errMultiCause (8) *withstack.withStack (9) *errutil.leafError (10) *fmttests.errNoFmt
-- report composition:
*errutil.leafError: included 2
<path>:<lineno>: *withstack.withStack (top exception)
*errutil.leafError: included 1
<path>:<lineno>: *withstack.withStack (1)
*fmttests.errMultiCause
*errutil.leafError: outerthree
<path>:<lineno>: *withstack.withStack (2)
*fmttests.errNoFmt
*fmttests.errMultiCause
*fmttests.errMultiCause
(check the extra data payloads)
== Extra "error types"
github.com/cockroachdb/errors/errutil/*errutil.leafError (*::)
github.com/cockroachdb/errors/withstack/*withstack.withStack (*::)
github.com/cockroachdb/errors/errutil/*errutil.leafError (*::)
github.com/cockroachdb/errors/withstack/*withstack.withStack (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.errMultiCause (*::)
github.com/cockroachdb/errors/errutil/*errutil.leafError (*::)
github.com/cockroachdb/errors/withstack/*withstack.withStack (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.errMultiCause (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.errMultiCause (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "(2) <path>:<lineno> ...funcNN...
Title: "*withstack.withStack"
<path>:<lineno>:
   (runtime) goexit()
<path>:<lineno>:
   (testing) tRunner()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven.Walk)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) Walk()
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.TestDatadriven)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) RunTest()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runTestInternal()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runDirectiveOrSubTest()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runDirective()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven.runDirective)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.TestDatadriven.func2) 1()
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.glob.)...funcNN...
== Exception 2 (Module: "error domain: <none>")
Type: "(1) <path>:<lineno> ...funcNN...
Title: "*withstack.withStack"
<path>:<lineno>:
   (runtime) goexit()
<path>:<lineno>:
   (testing) tRunner()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven.Walk)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) Walk()
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.TestDatadriven)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) RunTest()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runTestInternal()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runDirectiveOrSubTest()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runDirective()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven.runDirective)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.TestDatadriven.func2) 1()
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.glob.)...funcNN...
== Exception 3 (Module: "error domain: <none>")
Type: "<path>:<lineno> ...funcNN...
Title: "*errutil.leafError: ×: ×: included 2: included 1: ×: outerthree: ×\nvia *withstack.withStack"
<path>:<lineno>:
   (runtime) goexit()
<path>:<lineno>:
   (testing) tRunner()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven.Walk)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) Walk()
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.TestDatadriven)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) RunTest()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runTestInternal()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runDirectiveOrSubTest()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runDirective()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven.runDirective)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.TestDatadriven.func2) 1()
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.glob.)...funcNN...

run
nofmt innerone innertwo
multi-elided-cause outerthree outerfour

require (?s)outerthree.*outerfour.*
----
&fmttests.errMultiCause{
    causes: {
        &fmttests.errMultiCause{
            causes: {
                &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
                &withstack.withStack{
                    cause: &errutil.leafError{msg:"outerthree\nouterfour"},
                    stack: &stack{...},
                },
            },
            msg:   "C",
            elide: false,
        },
        &fmttests.errMultiCause{
            causes: {
                &withstack.withStack{
                    cause: &errutil.leafError{msg:"elided 1"},
                    stack: &stack{...},
                },
                &withstack.withStack{
                    cause: &errutil.leafError{msg:"elided 2"},
                    stack: &stack{...},
                },
            },
            msg:   "B",
            elide: true,
        },
    },
    msg:   "A",
    elide: false,
}
=====
===== non-redactable formats
=====
== %#v
&fmttests.errMultiCause{
    causes: {
        &fmttests.errMultiCause{
            causes: {
                &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
                &withstack.withStack{
                    cause: &errutil.leafError{msg:"outerthree\nouterfour"},
                    stack: &stack{...},
                },
            },
            msg:   "C",
            elide: false,
        },
        &fmttests.errMultiCause{
            causes: {
                &withstack.withStack{
                    cause: &errutil.leafError{msg:"elided 1"},
                    stack: &stack{...},
                },
                &withstack.withStack{
                    cause: &errutil.leafError{msg:"elided 2"},
                    stack: &stack{...},
                },
            },
            msg:   "B",
            elide: true,
        },
    },
    msg:   "A",
    elide: false,
}
== Error()
A: B: C: outerthree
outerfour: innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
A: B: C: outerthree: innerone
(1) A
Wraps: (2) B
└─ Wraps: (3) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  └─ Wraps: (4) elided 2
└─ Wraps: (5) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | [...repeated from below...]
  └─ Wraps: (6) elided 1
Wraps: (7) C
└─ Wraps: (8) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  | runtime.goexit
  | <tab><path>:<lineno>
  └─ Wraps: (9) outerthree
  | outerfour
└─ Wraps: (10) innerone
  | innertwo
Error types: (1) *fmttests.errMultiCause (2) *fmttests.errMultiCause (3) *withstack.withStack (4) *errutil.leafError (5) *withstack.withStack (6) *errutil.leafError (7) *fmttests.errMultiCause (8) *withstack.withStack (9) *errutil.leafError (10) *fmttests.errNoFmt
== %#v via Formattable() = %#v, good
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() == %+v, good
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
‹A›: ‹B›: ‹C›: outerthree
outerfour: ‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v
‹A›: ‹B›: ‹C›: outerthree: ‹innerone›
(1) ‹A›
Wraps: (2) ‹B›
└─ Wraps: (3) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  └─ Wraps: (4) elided 2
└─ Wraps: (5) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | [...repeated from below...]
  └─ Wraps: (6) elided 1
Wraps: (7) ‹C›
└─ Wraps: (8) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  | runtime.goexit
  | <tab><path>:<lineno>
  └─ Wraps: (9) outerthree
  | outerfour
└─ Wraps: (10) ‹innerone›
‹  | innertwo›
Error types: (1) *fmttests.errMultiCause (2) *fmttests.errMultiCause (3) *withstack.withStack (4) *errutil.leafError (5) *withstack.withStack (6) *errutil.leafError (7) *fmttests.errMultiCause (8) *withstack.withStack (9) *errutil.leafError (10) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
×: ×: ×: outerthree: ×
(1) ×
Wraps: (2) ×
└─ Wraps: (3) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  └─ Wraps: (4) elided 2
└─ Wraps: (5) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | [...repeated from below...]
  └─ Wraps: (6) elided 1
Wraps: (7) ×
└─ Wraps: (8) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  | runtime.goexit
  | <tab><path>:<lineno>
  └─ Wraps: (9) outerthree
  | outerfour
└─ Wraps: (10) ×
×
Error types: (1) *fmttests.errMultiCause (2) *fmttests.errMultiCause (3) *withstack.withStack (4) *errutil.leafError (5) *withstack.withStack (6) *errutil.leafError (7) *fmttests.errMultiCause (8) *withstack.withStack (9) *errutil.leafError (10) *fmttests.errNoFmt
-- report composition:
*errutil.leafError: elided 2
<path>:<lineno>: *withstack.withStack (top exception)
*errutil.leafError: elided 1
<path>:<lineno>: *withstack.withStack (1)
*fmttests.errMultiCause
*errutil.leafError: outerthree
<path>:<lineno>: *withstack.withStack (2)
*fmttests.errNoFmt
*fmttests.errMultiCause
*fmttests.errMultiCause
(check the extra data payloads)
== Extra "error types"
github.com/cockroachdb/errors/errutil/*errutil.leafError (*::)
github.com/cockroachdb/errors/withstack/*withstack.withStack (*::)
github.com/cockroachdb/errors/errutil/*errutil.leafError (*::)
github.com/cockroachdb/errors/withstack/*withstack.withStack (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.errMultiCause (*::)
github.com/cockroachdb/errors/errutil/*errutil.leafError (*::)
github.com/cockroachdb/errors/withstack/*withstack.withStack (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.errMultiCause (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.errMultiCause (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "(2) <path>:<lineno> ...funcNN...
Title: "*withstack.withStack"
<path>:<lineno>:
   (runtime) goexit()
<path>:<lineno>:
   (testing) tRunner()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven.Walk)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) Walk()
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.TestDatadriven)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) RunTest()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runTestInternal()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runDirectiveOrSubTest()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runDirective()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven.runDirective)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.TestDatadriven.func2) 1()
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.glob.)...funcNN...
== Exception 2 (Module: "error domain: <none>")
Type: "(1) <path>:<lineno> ...funcNN...
Title: "*withstack.withStack"
<path>:<lineno>:
   (runtime) goexit()
<path>:<lineno>:
   (testing) tRunner()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven.Walk)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) Walk()
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.TestDatadriven)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) RunTest()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runTestInternal()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runDirectiveOrSubTest()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runDirective()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven.runDirective)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.TestDatadriven.func2) 1()
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.glob.)...funcNN...
== Exception 3 (Module: "error domain: <none>")
Type: "<path>:<lineno> ...funcNN...
Title: "*errutil.leafError: ×: ×: ×: outerthree: ×\nvia *withstack.withStack"
<path>:<lineno>:
   (runtime) goexit()
<path>:<lineno>:
   (testing) tRunner()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven.Walk)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) Walk()
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.TestDatadriven)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) RunTest()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runTestInternal()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runDirectiveOrSubTest()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runDirective()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven.runDirective)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.TestDatadriven.func2) 1()
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.glob.)...funcNN...

run
nofmt innerone innertwo
newfw outerthree outerfour

require (?s)outerthree.*outerfour.*
----
&withstack.withStack{
    cause: &secondary.withSecondaryError{
        cause: &errutil.withNewMessage{
            cause:   &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
            message: "new-style (‹outerthree›\n‹outerfour›) :: ‹innerone›\n‹innertwo› ::",
        },
        secondaryError: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    },
    stack: &stack{...},
}
=====
===== non-redactable formats
=====
== %#v
&withstack.withStack{
    cause: &secondary.withSecondaryError{
        cause: &errutil.withNewMessage{
            cause:   &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
            message: "new-style (‹outerthree›\n‹outerfour›) :: ‹innerone›\n‹innertwo› ::",
        },
        secondaryError: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    },
    stack: &stack{...},
}
== Error()
new-style (outerthree
outerfour) :: innerone
innertwo ::
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
new-style (outerthree
(1) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  | runtime.goexit
  | <tab><path>:<lineno>
Wraps: (2) secondary error attachment
  | innerone
  | (1) innerone
  |   | innertwo
  | Error types: (1) *fmttests.errNoFmt
Wraps: (3) new-style (outerthree
  | outerfour) :: innerone
  | innertwo ::
Wraps: (4) innerone
  | innertwo
Error types: (1) *withstack.withStack (2) *secondary.withSecondaryError (3) *errutil.withNewMessage (4) *fmttests.errNoFmt
== %#v via Formattable() = %#v, good
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() == %+v, good
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
new-style (‹outerthree›
‹outerfour›) :: ‹innerone›
‹innertwo› ::
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v
new-style (‹outerthree›
(1) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  | runtime.goexit
  | <tab><path>:<lineno>
Wraps: (2) secondary error attachment
  | ‹innerone›
  | (1) ‹innerone›
  | ‹  | innertwo›
  | Error types: (1) *fmttests.errNoFmt
Wraps: (3) new-style (‹outerthree›
  | ‹outerfour›) :: ‹innerone›
  | ‹innertwo› ::
Wraps: (4) ‹innerone›
‹  | innertwo›
Error types: (1) *withstack.withStack (2) *secondary.withSecondaryError (3) *errutil.withNewMessage (4) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
<path>:<lineno>: new-style (×
(1) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  | runtime.goexit
  | <tab><path>:<lineno>
Wraps: (2) secondary error attachment
  | ×
  | (1) ×
  | ×
  | Error types: (1) *fmttests.errNoFmt
Wraps: (3) new-style (×
  | ×) :: ×
  | × ::
Wraps: (4) ×
×
Error types: (1) *withstack.withStack (2) *secondary.withSecondaryError (3) *errutil.withNewMessage (4) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
*errutil.withNewMessage: new-style (×
*secondary.withSecondaryError
<path>:<lineno>: *withstack.withStack (top exception)
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
github.com/cockroachdb/errors/errutil/*errutil.withNewMessage (*::)
github.com/cockroachdb/errors/secondary/*secondary.withSecondaryError (*::)
github.com/cockroachdb/errors/withstack/*withstack.withStack (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "<path>:<lineno> ...funcNN...
Title: "*fmttests.errNoFmt: new-style (×\nvia *withstack.withStack"
<path>:<lineno>:
   (runtime) goexit()
<path>:<lineno>:
   (testing) tRunner()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven.Walk)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) Walk()
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.TestDatadriven)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) RunTest()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runTestInternal()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runDirectiveOrSubTest()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runDirective()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven.runDirective)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.TestDatadriven.func2) 1()
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.glob.)...funcNN...

run
nofmt innerone innertwo
newfw-suffix outerthree outerfour

require (?s).*outerthree.*outerfour
----
&withstack.withStack{
    cause: &secondary.withSecondaryError{
        cause: &errutil.withNewMessage{
            cause:   &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
            message: ":: ‹innerone›\n‹innertwo› :: new-style (‹outerthree›\n‹outerfour›)",
        },
        secondaryError: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    },
    stack: &stack{...},
}
=====
===== non-redactable formats
=====
== %#v
&withstack.withStack{
    cause: &secondary.withSecondaryError{
        cause: &errutil.withNewMessage{
            cause:   &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
            message: ":: ‹innerone›\n‹innertwo› :: new-style (‹outerthree›\n‹outerfour›)",
        },
        secondaryError: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    },
    stack: &stack{...},
}
== Error()
:: innerone
innertwo :: new-style (outerthree
outerfour)
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
:: innerone
(1) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  | runtime.goexit
  | <tab><path>:<lineno>
Wraps: (2) secondary error attachment
  | innerone
  | (1) innerone
  |   | innertwo
  | Error types: (1) *fmttests.errNoFmt
Wraps: (3) :: innerone
  | innertwo :: new-style (outerthree
  | outerfour)
Wraps: (4) innerone
  | innertwo
Error types: (1) *withstack.withStack (2) *secondary.withSecondaryError (3) *errutil.withNewMessage (4) *fmttests.errNoFmt
== %#v via Formattable() = %#v, good
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() == %+v, good
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
:: ‹innerone›
‹innertwo› :: new-style (‹outerthree›
‹outerfour›)
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v
:: ‹innerone›
(1) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  | runtime.goexit
  | <tab><path>:<lineno>
Wraps: (2) secondary error attachment
  | ‹innerone›
  | (1) ‹innerone›
  | ‹  | innertwo›
  | Error types: (1) *fmttests.errNoFmt
Wraps: (3) :: ‹innerone›
  | ‹innertwo› :: new-style (‹outerthree›
  | ‹outerfour›)
Wraps: (4) ‹innerone›
‹  | innertwo›
Error types: (1) *withstack.withStack (2) *secondary.withSecondaryError (3) *errutil.withNewMessage (4) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
<path>:<lineno>: :: ×
(1) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  | runtime.goexit
  | <tab><path>:<lineno>
Wraps: (2) secondary error attachment
  | ×
  | (1) ×
  | ×
  | Error types: (1) *fmttests.errNoFmt
Wraps: (3) :: ×
  | × :: new-style (×
  | ×)
Wraps: (4) ×
×
Error types: (1) *withstack.withStack (2) *secondary.withSecondaryError (3) *errutil.withNewMessage (4) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
*errutil.withNewMessage: :: ×
*secondary.withSecondaryError
<path>:<lineno>: *withstack.withStack (top exception)
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
github.com/cockroachdb/errors/errutil/*errutil.withNewMessage (*::)
github.com/cockroachdb/errors/secondary/*secondary.withSecondaryError (*::)
github.com/cockroachdb/errors/withstack/*withstack.withStack (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "<path>:<lineno> ...funcNN...
Title: "*fmttests.errNoFmt: :: ×\nvia *withstack.withStack"
<path>:<lineno>:
   (runtime) goexit()
<path>:<lineno>:
   (testing) tRunner()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven.Walk)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) Walk()
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.TestDatadriven)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) RunTest()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runTestInternal()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runDirectiveOrSubTest()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runDirective()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven.runDirective)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.TestDatadriven.func2) 1()
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.glob.)...funcNN...

run
nofmt innerone innertwo
nofmt outerthree outerfour

accept %\+v via Formattable.*IRREGULAR: not same as %\+v
accept %\#v via Formattable.*IRREGULAR: not same as %\#v

require (?s)outerthree.*outerfour.*
----
&fmttests.werrNoFmt{
    cause: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    msg:   "outerthree\nouterfour",
}
=====
===== non-redactable formats
=====
== %#v
&fmttests.werrNoFmt{cause:(*fmttests.errNoFmt)(0xAAAABBBB), msg:"outerthree\nouterfour"}
== Error()
outerthree
outerfour: innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v = Error(), ok
== %#v via Formattable() (IRREGULAR: not same as %#v)
&fmttests.werrNoFmt{
    cause: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    msg:   "outerthree\nouterfour",
}
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() (IRREGULAR: not same as %+v)
outerthree: innerone
(1) outerthree
  | outerfour
Wraps: (2) innerone
  | innertwo
Error types: (1) *fmttests.werrNoFmt (2) *fmttests.errNoFmt
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
‹outerthree›
‹outerfour›: ‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v via Formattable()
‹outerthree›: ‹innerone›
(1) ‹outerthree›
‹  | outerfour›
Wraps: (2) ‹innerone›
‹  | innertwo›
Error types: (1) *fmttests.werrNoFmt (2) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
×: ×
(1) ×
×
Wraps: (2) ×
×
Error types: (1) *fmttests.werrNoFmt (2) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
*fmttests.werrNoFmt
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.werrNoFmt (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errNoFmt"
Title: "×: ×"
(NO STACKTRACE)

run
nofmt innerone innertwo
os-link outerthree outerfour

accept %\+v via Formattable.*IRREGULAR: not same as %\+v
accept %\#v via Formattable.*IRREGULAR: not same as %\#v

require (?s)
----
&os.LinkError{
    Op:  "link",
    Old: "/path/to/file",
    New: "/path/to/newfile",
    Err: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
}
=====
===== non-redactable formats
=====
== %#v
&os.LinkError{Op:"link", Old:"/path/to/file", New:"/path/to/newfile", Err:(*fmttests.errNoFmt)(0xAAAABBBB)}
== Error()
link /path/to/file /path/to/newfile: innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v = Error(), ok
== %#v via Formattable() (IRREGULAR: not same as %#v)
&os.LinkError{
    Op:  "link",
    Old: "/path/to/file",
    New: "/path/to/newfile",
    Err: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
}
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() (IRREGULAR: not same as %+v)
link /path/to/file /path/to/newfile: innerone
(1) link /path/to/file /path/to/newfile
Wraps: (2) innerone
  | innertwo
Error types: (1) *os.LinkError (2) *fmttests.errNoFmt
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
link ‹/path/to/file› ‹/path/to/newfile›: ‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v via Formattable()
link ‹/path/to/file› ‹/path/to/newfile›: ‹innerone›
(1) link ‹/path/to/file› ‹/path/to/newfile›
Wraps: (2) ‹innerone›
‹  | innertwo›
Error types: (1) *os.LinkError (2) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
link × ×: ×
(1) link × ×
Wraps: (2) ×
×
Error types: (1) *os.LinkError (2) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
*os.LinkError
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
os/*os.LinkError (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errNoFmt"
Title: "link × ×: ×"
(NO STACKTRACE)

run
nofmt innerone innertwo
os-netop outerthree outerfour

accept %\+v via Formattable.*IRREGULAR: not same as %\+v
accept %\#v via Formattable.*IRREGULAR: not same as %\#v

require (?s)
----
&net.OpError{
    Op:     "send",
    Net:    "tcp",
    Source: nil,
    Addr:   &net.UnixAddr{Name:"unixhello", Net:"unixgram"},
    Err:    &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
}
=====
===== non-redactable formats
=====
== %#v
&net.OpError{Op:"send", Net:"tcp", Source:net.Addr(nil), Addr:(*net.UnixAddr)(0xAAAABBBB), Err:(*fmttests.errNoFmt)(0xAAAABBBB)}
== Error()
send tcp unixhello: innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v = Error(), ok
== %#v via Formattable() (IRREGULAR: not same as %#v)
&net.OpError{
    Op:     "send",
    Net:    "tcp",
    Source: nil,
    Addr:   &net.UnixAddr{Name:"unixhello", Net:"unixgram"},
    Err:    &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
}
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() (IRREGULAR: not same as %+v)
send tcp unixhello: innerone
(1) send tcp unixhello
Wraps: (2) innerone
  | innertwo
Error types: (1) *net.OpError (2) *fmttests.errNoFmt
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
send tcp ‹unixhello›: ‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v via Formattable()
send tcp ‹unixhello›: ‹innerone›
(1) send tcp ‹unixhello›
Wraps: (2) ‹innerone›
‹  | innertwo›
Error types: (1) *net.OpError (2) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
send tcp ×: ×
(1) send tcp ×
Wraps: (2) ×
×
Error types: (1) *net.OpError (2) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
*net.OpError
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
net/*net.OpError (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errNoFmt"
Title: "send tcp ×: ×"
(NO STACKTRACE)

run
nofmt innerone innertwo
os-path outerthree outerfour

accept %\+v via Formattable.*IRREGULAR: not same as %\+v
accept %\#v via Formattable.*IRREGULAR: not same as %\#v

require (?s)
----
&fs.PathError{
    Op:   "link",
    Path: "/path/to/file",
    Err:  &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
}
=====
===== non-redactable formats
=====
== %#v
&fs.PathError{Op:"link", Path:"/path/to/file", Err:(*fmttests.errNoFmt)(0xAAAABBBB)}
== Error()
link /path/to/file: innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v = Error(), ok
== %#v via Formattable() (IRREGULAR: not same as %#v)
&fs.PathError{
    Op:   "link",
    Path: "/path/to/file",
    Err:  &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
}
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() (IRREGULAR: not same as %+v)
link /path/to/file: innerone
(1) link /path/to/file
Wraps: (2) innerone
  | innertwo
Error types: (1) *fs.PathError (2) *fmttests.errNoFmt
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
link ‹/path/to/file›: ‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v via Formattable()
link ‹/path/to/file›: ‹innerone›
(1) link ‹/path/to/file›
Wraps: (2) ‹innerone›
‹  | innertwo›
Error types: (1) *fs.PathError (2) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
link ×: ×
(1) link ×
Wraps: (2) ×
×
Error types: (1) *fs.PathError (2) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
*fs.PathError
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
io/fs/*fs.PathError (os/*os.PathError::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errNoFmt"
Title: "link ×: ×"
(NO STACKTRACE)

run
nofmt innerone innertwo
os-syscall outerthree outerfour

accept %\+v via Formattable.*IRREGULAR: not same as %\+v
accept %\#v via Formattable.*IRREGULAR: not same as %\#v

require (?s)
----
&os.SyscallError{
    Syscall: "open",
    Err:     &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
}
=====
===== non-redactable formats
=====
== %#v
&os.SyscallError{Syscall:"open", Err:(*fmttests.errNoFmt)(0xAAAABBBB)}
== Error()
open: innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v = Error(), ok
== %#v via Formattable() (IRREGULAR: not same as %#v)
&os.SyscallError{
    Syscall: "open",
    Err:     &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
}
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() (IRREGULAR: not same as %+v)
open: innerone
(1) open
Wraps: (2) innerone
  | innertwo
Error types: (1) *os.SyscallError (2) *fmttests.errNoFmt
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
open: ‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v via Formattable()
open: ‹innerone›
(1) open
Wraps: (2) ‹innerone›
‹  | innertwo›
Error types: (1) *os.SyscallError (2) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
open: ×
(1) open
Wraps: (2) ×
×
Error types: (1) *os.SyscallError (2) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
*os.SyscallError
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
os/*os.SyscallError (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errNoFmt"
Title: "open: ×"
(NO STACKTRACE)

run
nofmt innerone innertwo
pkgmsg outerthree outerfour

accept %x.*IRREGULAR: not same as hex Error
accept %q.*IRREGULAR: not same as quoted Error
accept %X.*IRREGULAR: not same as HEX Error
accept %\#v via Formattable.*IRREGULAR: not same as %\#v
accept %\+v via Formattable.*IRREGULAR: not same as %\+v
require (?s)outerthree.*outerfour.*
----
&errors.withMessage{
    cause: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    msg:   "outerthree\nouterfour",
}
=====
===== non-redactable formats
=====
== %#v
outerthree
outerfour: innerone
innertwo
== Error()
outerthree
outerfour: innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q (IRREGULAR: not same as quoted Error())
outerthree
outerfour: innerone
innertwo
== %x (IRREGULAR: not same as hex Error())
(EMPTY STRING)
== %X (IRREGULAR: not same as HEX Error())
(EMPTY STRING)
== %+v
innerone
innertwo
outerthree
outerfour
== %#v via Formattable() (IRREGULAR: not same as %#v)
&errors.withMessage{
    cause: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    msg:   "outerthree\nouterfour",
}
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() (IRREGULAR: not same as %+v)
outerthree: innerone
(1) outerthree
  | outerfour
Wraps: (2) innerone
  | innertwo
Error types: (1) *errors.withMessage (2) *fmttests.errNoFmt
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
‹outerthree›
‹outerfour›: ‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v via Formattable()
‹outerthree›: ‹innerone›
(1) ‹outerthree›
‹  | outerfour›
Wraps: (2) ‹innerone›
‹  | innertwo›
Error types: (1) *errors.withMessage (2) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
×: ×
(1) ×
×
Wraps: (2) ×
×
Error types: (1) *errors.withMessage (2) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
*errors.withMessage
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
github.com/pkg/errors/*errors.withMessage (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errNoFmt"
Title: "×: ×"
(NO STACKTRACE)

run
nofmt innerone innertwo
pkgstack outerthree outerfour

accept %x.*IRREGULAR: not same as hex Error
accept %q.*IRREGULAR: not same as quoted Error
accept %X.*IRREGULAR: not same as HEX Error
accept %\#v via Formattable.*IRREGULAR: not same as %\#v
accept %\+v via Formattable.*IRREGULAR: not same as %\+v
require (?s)
----
&errors.withStack{
    error: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    stack: &stack{...},
}
=====
===== non-redactable formats
=====
== %#v
innerone
innertwo
== Error()
innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x (IRREGULAR: not same as hex Error())
(EMPTY STRING)
== %X (IRREGULAR: not same as HEX Error())
(EMPTY STRING)
== %+v
innerone
innertwo
github.com/cockroachdb/errors/fmttests.glob...funcNN...
<tab><path>:<lineno>
github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
<tab><path>:<lineno>
github.com/cockroachdb/datadriven.runDirective.func1
<tab><path>:<lineno>
github.com/cockroachdb/datadriven.runDirective
<tab><path>:<lineno>
github.com/cockroachdb/datadriven.runDirectiveOrSubTest
<tab><path>:<lineno>
github.com/cockroachdb/datadriven.runTestInternal
<tab><path>:<lineno>
github.com/cockroachdb/datadriven.RunTest
<tab><path>:<lineno>
github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
<tab><path>:<lineno>
github.com/cockroachdb/datadriven.Walk
<tab><path>:<lineno>
github.com/cockroachdb/datadriven.Walk.func1
<tab><path>:<lineno>
testing.tRunner
<tab><path>:<lineno>
runtime.goexit
<tab><path>:<lineno>
== %#v via Formattable() (IRREGULAR: not same as %#v)
&errors.withStack{
    error: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    stack: &stack{...},
}
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() (IRREGULAR: not same as %+v)
innerone
(1)
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  | runtime.goexit
  | <tab><path>:<lineno>
Wraps: (2) innerone
  | innertwo
Error types: (1) *errors.withStack (2) *fmttests.errNoFmt
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v via Formattable()
‹innerone›
(1)
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  | runtime.goexit
  | <tab><path>:<lineno>
Wraps: (2) ‹innerone›
‹  | innertwo›
Error types: (1) *errors.withStack (2) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
<path>:<lineno>: ×
(1)
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  | runtime.goexit
  | <tab><path>:<lineno>
Wraps: (2) ×
×
Error types: (1) *errors.withStack (2) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
<path>:<lineno>: *errors.withStack (top exception)
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
github.com/pkg/errors/*errors.withStack (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "<path>:<lineno> ...funcNN...
Title: "*fmttests.errNoFmt: ×\nvia *errors.withStack"
<path>:<lineno>:
   (runtime) goexit()
<path>:<lineno>:
   (testing) tRunner()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven.Walk)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) Walk()
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.TestDatadriven)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) RunTest()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runTestInternal()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runDirectiveOrSubTest()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runDirective()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven.runDirective)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.TestDatadriven.func2) 1()
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.glob.)...funcNN...

run
nofmt innerone innertwo
safedetails outerthree outerfour

require (?s)
----
&safedetails.withSafeDetails{
    cause:       &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    safeDetails: {"safe ×\n×"},
}
=====
===== non-redactable formats
=====
== %#v
&safedetails.withSafeDetails{
    cause:       &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    safeDetails: {"safe ×\n×"},
}
== Error()
innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
innerone
(1) safe ×
  | ×
Wraps: (2) innerone
  | innertwo
Error types: (1) *safedetails.withSafeDetails (2) *fmttests.errNoFmt
== %#v via Formattable() = %#v, good
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() == %+v, good
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v
‹innerone›
(1) safe ×
  | ×
Wraps: (2) ‹innerone›
‹  | innertwo›
Error types: (1) *safedetails.withSafeDetails (2) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
×
(1) safe ×
  | ×
Wraps: (2) ×
×
Error types: (1) *safedetails.withSafeDetails (2) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
*safedetails.withSafeDetails: safe ×
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
github.com/cockroachdb/errors/safedetails/*safedetails.withSafeDetails (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errNoFmt"
Title: "×"
(NO STACKTRACE)

run
nofmt innerone innertwo
safefmt outerthree outerfour

require (?s)outerthree.*outerfour.*
----
&fmttests.werrSafeFormat{
    cause: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    msg:   "outerthree\nouterfour",
}
=====
===== non-redactable formats
=====
== %#v
&fmttests.werrSafeFormat{
    cause: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    msg:   "outerthree\nouterfour",
}
== Error()
safe outerthree
outerfour: innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
safe outerthree: innerone
(1) safe outerthree
  | outerfour
Wraps: (2) innerone
  | innertwo
Error types: (1) *fmttests.werrSafeFormat (2) *fmttests.errNoFmt
== %#v via Formattable() = %#v, good
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() == %+v, good
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
safe ‹outerthree›
‹outerfour›: ‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v
safe ‹outerthree›: ‹innerone›
(1) safe ‹outerthree›
  | ‹outerfour›
Wraps: (2) ‹innerone›
‹  | innertwo›
Error types: (1) *fmttests.werrSafeFormat (2) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
safe ×: ×
(1) safe ×
  | ×
Wraps: (2) ×
×
Error types: (1) *fmttests.werrSafeFormat (2) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
*fmttests.werrSafeFormat
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.werrSafeFormat (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errNoFmt"
Title: "safe ×: ×"
(NO STACKTRACE)

run
nofmt innerone innertwo
secondary outerthree outerfour

require (?s)
----
&secondary.withSecondaryError{
    cause:          &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    secondaryError: &withstack.withStack{
        cause: &errutil.leafError{msg:"outerthree\nouterfour"},
        stack: &stack{...},
    },
}
=====
===== non-redactable formats
=====
== %#v
&secondary.withSecondaryError{
    cause:          &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    secondaryError: &withstack.withStack{
        cause: &errutil.leafError{msg:"outerthree\nouterfour"},
        stack: &stack{...},
    },
}
== Error()
innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
innerone
(1) secondary error attachment
  | outerthree
  | (1) attached stack trace
  |   -- stack trace:
  |   | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.runDirective.func1
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.runDirective
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.runTestInternal
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.RunTest
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.Walk
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.Walk.func1
  |   | <tab><path>:<lineno>
  |   | testing.tRunner
  |   | <tab><path>:<lineno>
  |   | runtime.goexit
  |   | <tab><path>:<lineno>
  | Wraps: (2) outerthree
  |   | outerfour
  | Error types: (1) *withstack.withStack (2) *errutil.leafError
Wraps: (2) innerone
  | innertwo
Error types: (1) *secondary.withSecondaryError (2) *fmttests.errNoFmt
== %#v via Formattable() = %#v, good
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() == %+v, good
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v
‹innerone›
(1) secondary error attachment
  | outerthree
  | (1) attached stack trace
  |   -- stack trace:
  |   | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.runDirective.func1
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.runDirective
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.runTestInternal
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.RunTest
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.Walk
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.Walk.func1
  |   | <tab><path>:<lineno>
  |   | testing.tRunner
  |   | <tab><path>:<lineno>
  |   | runtime.goexit
  |   | <tab><path>:<lineno>
  | Wraps: (2) outerthree
  |   | outerfour
  | Error types: (1) *withstack.withStack (2) *errutil.leafError
Wraps: (2) ‹innerone›
‹  | innertwo›
Error types: (1) *secondary.withSecondaryError (2) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
×
(1) secondary error attachment
  | outerthree
  | (1) attached stack trace
  |   -- stack trace:
  |   | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.runDirective.func1
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.runDirective
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.runTestInternal
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.RunTest
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.Walk
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.Walk.func1
  |   | <tab><path>:<lineno>
  |   | testing.tRunner
  |   | <tab><path>:<lineno>
  |   | runtime.goexit
  |   | <tab><path>:<lineno>
  | Wraps: (2) outerthree
  |   | outerfour
  | Error types: (1) *withstack.withStack (2) *errutil.leafError
Wraps: (2) ×
×
Error types: (1) *secondary.withSecondaryError (2) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
*secondary.withSecondaryError: details for github.com/cockroachdb/errors/withstack/*withstack.withStack:::
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
github.com/cockroachdb/errors/secondary/*secondary.withSecondaryError (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errNoFmt"
Title: "×"
(NO STACKTRACE)

run
nofmt innerone innertwo
stack outerthree outerfour

require (?s)
----
&withstack.withStack{
    cause: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    stack: &stack{...},
}
=====
===== non-redactable formats
=====
== %#v
&withstack.withStack{
    cause: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    stack: &stack{...},
}
== Error()
innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
innerone
(1) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  | runtime.goexit
  | <tab><path>:<lineno>
Wraps: (2) innerone
  | innertwo
Error types: (1) *withstack.withStack (2) *fmttests.errNoFmt
== %#v via Formattable() = %#v, good
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() == %+v, good
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v
‹innerone›
(1) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  | runtime.goexit
  | <tab><path>:<lineno>
Wraps: (2) ‹innerone›
‹  | innertwo›
Error types: (1) *withstack.withStack (2) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
<path>:<lineno>: ×
(1) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  | runtime.goexit
  | <tab><path>:<lineno>
Wraps: (2) ×
×
Error types: (1) *withstack.withStack (2) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
<path>:<lineno>: *withstack.withStack (top exception)
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
github.com/cockroachdb/errors/withstack/*withstack.withStack (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "<path>:<lineno> ...funcNN...
Title: "*fmttests.errNoFmt: ×\nvia *withstack.withStack"
<path>:<lineno>:
   (runtime) goexit()
<path>:<lineno>:
   (testing) tRunner()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven.Walk)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) Walk()
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.TestDatadriven)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) RunTest()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runTestInternal()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runDirectiveOrSubTest()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runDirective()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven.runDirective)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.TestDatadriven.func2) 1()
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.glob.)...funcNN...

run
nofmt innerone innertwo
tags outerthree outerfour

require (?s)
----
&contexttags.withContext{
    cause: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    tags:  &logtags.Buffer{
        tags: {
            {
                key:   "k",
                value: int(123),
            },
            {
                key:   "safe",
                value: redact.safeWrapper{
                    a:  int(456),
                },
            },
        },
        prealloc: {
            {
                key:   "k",
                value: int(123),
            },
            {
                key:   "safe",
                value: redact.safeWrapper{
                    a:  int(456),
                },
            },
            {},
            {},
        },
    },
    redactedTags: nil,
}
=====
===== non-redactable formats
=====
== %#v
&contexttags.withContext{
    cause: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    tags:  &logtags.Buffer{
        tags: {
            {
                key:   "k",
                value: int(123),
            },
            {
                key:   "safe",
                value: redact.safeWrapper{
                    a:  int(456),
                },
            },
        },
        prealloc: {
            {
                key:   "k",
                value: int(123),
            },
            {
                key:   "safe",
                value: redact.safeWrapper{
                    a:  int(456),
                },
            },
            {},
            {},
        },
    },
    redactedTags: nil,
}
== Error()
innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
innerone
(1) tags: [k123,safe=456]
Wraps: (2) innerone
  | innertwo
Error types: (1) *contexttags.withContext (2) *fmttests.errNoFmt
== %#v via Formattable() = %#v, good
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() == %+v, good
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v
‹innerone›
(1) tags: [k‹123›,safe=456]
Wraps: (2) ‹innerone›
‹  | innertwo›
Error types: (1) *contexttags.withContext (2) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
×
(1) tags: [k×,safe=456]
Wraps: (2) ×
×
Error types: (1) *contexttags.withContext (2) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
*contexttags.withContext: k×
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
github.com/cockroachdb/errors/contexttags/*contexttags.withContext (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errNoFmt"
Title: "×"
(NO STACKTRACE)

run
nofmt innerone innertwo
telemetry outerthree outerfour

require (?s)
----
&telemetrykeys.withTelemetry{
    cause: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    keys:  {"somekey", "outerthree\nouterfour"},
}
=====
===== non-redactable formats
=====
== %#v
&telemetrykeys.withTelemetry{
    cause: &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
    keys:  {"somekey", "outerthree\nouterfour"},
}
== Error()
innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
innerone
(1) keys: [somekey outerthree
  | outerfour]
Wraps: (2) innerone
  | innertwo
Error types: (1) *telemetrykeys.withTelemetry (2) *fmttests.errNoFmt
== %#v via Formattable() = %#v, good
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() == %+v, good
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v
‹innerone›
(1) keys: [somekey outerthree
  | outerfour]
Wraps: (2) ‹innerone›
‹  | innertwo›
Error types: (1) *telemetrykeys.withTelemetry (2) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
×
(1) keys: [somekey outerthree
  | outerfour]
Wraps: (2) ×
×
Error types: (1) *telemetrykeys.withTelemetry (2) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
*telemetrykeys.withTelemetry: somekey
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
github.com/cockroachdb/errors/telemetrykeys/*telemetrykeys.withTelemetry (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errNoFmt"
Title: "×"
(NO STACKTRACE)

run
nofmt innerone innertwo
wrapf outerthree outerfour

require (?s)outerthree.*outerfour.*
----
&withstack.withStack{
    cause: &errutil.withPrefix{
        cause:  &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
        prefix: "new-stylew ‹outerthree›\n‹outerfour›",
    },
    stack: &stack{...},
}
=====
===== non-redactable formats
=====
== %#v
&withstack.withStack{
    cause: &errutil.withPrefix{
        cause:  &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
        prefix: "new-stylew ‹outerthree›\n‹outerfour›",
    },
    stack: &stack{...},
}
== Error()
new-stylew outerthree
outerfour: innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
new-stylew outerthree: innerone
(1) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  | runtime.goexit
  | <tab><path>:<lineno>
Wraps: (2) new-stylew outerthree
  | outerfour
Wraps: (3) innerone
  | innertwo
Error types: (1) *withstack.withStack (2) *errutil.withPrefix (3) *fmttests.errNoFmt
== %#v via Formattable() = %#v, good
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() == %+v, good
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
new-stylew ‹outerthree›
‹outerfour›: ‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v
new-stylew ‹outerthree›: ‹innerone›
(1) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  | runtime.goexit
  | <tab><path>:<lineno>
Wraps: (2) new-stylew ‹outerthree›
  | ‹outerfour›
Wraps: (3) ‹innerone›
‹  | innertwo›
Error types: (1) *withstack.withStack (2) *errutil.withPrefix (3) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
<path>:<lineno>: new-stylew ×: ×
(1) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  | runtime.goexit
  | <tab><path>:<lineno>
Wraps: (2) new-stylew ×
  | ×
Wraps: (3) ×
×
Error types: (1) *withstack.withStack (2) *errutil.withPrefix (3) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
*errutil.withPrefix: new-stylew ×
<path>:<lineno>: *withstack.withStack (top exception)
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
github.com/cockroachdb/errors/errutil/*errutil.withPrefix (*::)
github.com/cockroachdb/errors/withstack/*withstack.withStack (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "<path>:<lineno> ...funcNN...
Title: "*fmttests.errNoFmt: new-stylew ×: ×\nvia *withstack.withStack"
<path>:<lineno>:
   (runtime) goexit()
<path>:<lineno>:
   (testing) tRunner()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven.Walk)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) Walk()
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.TestDatadriven)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) RunTest()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runTestInternal()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runDirectiveOrSubTest()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runDirective()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven.runDirective)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.TestDatadriven.func2) 1()
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.glob.)...funcNN...

run
nofmt innerone innertwo
wrapf-attached outerthree outerfour

require (?s)outerthree.*outerfour.*
----
&withstack.withStack{
    cause: &secondary.withSecondaryError{
        cause: &errutil.withPrefix{
            cause:  &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
            prefix: "new-style ‹outerthree›\n‹outerfour› (payload)",
        },
        secondaryError: &withstack.withStack{
            cause: &errutil.leafError{msg:"payload"},
            stack: &stack{...},
        },
    },
    stack: &stack{...},
}
=====
===== non-redactable formats
=====
== %#v
&withstack.withStack{
    cause: &secondary.withSecondaryError{
        cause: &errutil.withPrefix{
            cause:  &fmttests.errNoFmt{msg:"innerone\ninnertwo"},
            prefix: "new-style ‹outerthree›\n‹outerfour› (payload)",
        },
        secondaryError: &withstack.withStack{
            cause: &errutil.leafError{msg:"payload"},
            stack: &stack{...},
        },
    },
    stack: &stack{...},
}
== Error()
new-style outerthree
outerfour (payload): innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
new-style outerthree: innerone
(1) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  | runtime.goexit
  | <tab><path>:<lineno>
Wraps: (2) secondary error attachment
  | payload
  | (1) attached stack trace
  |   -- stack trace:
  |   | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.runDirective.func1
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.runDirective
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.runTestInternal
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.RunTest
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.Walk
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.Walk.func1
  |   | <tab><path>:<lineno>
  |   | testing.tRunner
  |   | <tab><path>:<lineno>
  |   | runtime.goexit
  |   | <tab><path>:<lineno>
  | Wraps: (2) payload
  | Error types: (1) *withstack.withStack (2) *errutil.leafError
Wraps: (3) new-style outerthree
  | outerfour (payload)
Wraps: (4) innerone
  | innertwo
Error types: (1) *withstack.withStack (2) *secondary.withSecondaryError (3) *errutil.withPrefix (4) *fmttests.errNoFmt
== %#v via Formattable() = %#v, good
== %v via Formattable() = Error(), good
== %s via Formattable() = %v via Formattable(), good
== %q via Formattable() = quoted %v via Formattable(), good
== %+v via Formattable() == %+v, good
=====
===== redactable formats
=====
== printed via redact Print(), ok - congruent with %v
new-style ‹outerthree›
‹outerfour› (payload): ‹innerone›
‹innertwo›
== printed via redact Printf() %v = Print(), good
== printed via redact Printf() %s = Print(), good
== printed via redact Printf() %q, refused - good
== printed via redact Printf() %x, refused - good
== printed via redact Printf() %X, refused - good
== printed via redact Printf() %+v, ok - congruent with %+v
new-style ‹outerthree›: ‹innerone›
(1) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  | runtime.goexit
  | <tab><path>:<lineno>
Wraps: (2) secondary error attachment
  | payload
  | (1) attached stack trace
  |   -- stack trace:
  |   | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.runDirective.func1
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.runDirective
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.runTestInternal
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.RunTest
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.Walk
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.Walk.func1
  |   | <tab><path>:<lineno>
  |   | testing.tRunner
  |   | <tab><path>:<lineno>
  |   | runtime.goexit
  |   | <tab><path>:<lineno>
  | Wraps: (2) payload
  | Error types: (1) *withstack.withStack (2) *errutil.leafError
Wraps: (3) new-style ‹outerthree›
  | ‹outerfour› (payload)
Wraps: (4) ‹innerone›
‹  | innertwo›
Error types: (1) *withstack.withStack (2) *secondary.withSecondaryError (3) *errutil.withPrefix (4) *fmttests.errNoFmt
=====
===== Sentry reporting
=====
== Message payload
<path>:<lineno>: new-style ×: ×
(1) attached stack trace
  -- stack trace:
  | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective.func1
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirective
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.runTestInternal
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.RunTest
  | <tab><path>:<lineno>
  | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk
  | <tab><path>:<lineno>
  | github.com/cockroachdb/datadriven.Walk.func1
  | <tab><path>:<lineno>
  | testing.tRunner
  | <tab><path>:<lineno>
  | runtime.goexit
  | <tab><path>:<lineno>
Wraps: (2) secondary error attachment
  | payload
  | (1) attached stack trace
  |   -- stack trace:
  |   | github.com/cockroachdb/errors/fmttests.glob...funcNN...
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.runDirective.func1
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.runDirective
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.runDirectiveOrSubTest
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.runTestInternal
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.RunTest
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/errors/fmttests.TestDatadriven.func2
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.Walk
  |   | <tab><path>:<lineno>
  |   | github.com/cockroachdb/datadriven.Walk.func1
  |   | <tab><path>:<lineno>
  |   | testing.tRunner
  |   | <tab><path>:<lineno>
  |   | runtime.goexit
  |   | <tab><path>:<lineno>
  | Wraps: (2) payload
  | Error types: (1) *withstack.withStack (2) *errutil.leafError
Wraps: (3) new-style ×
  | × (payload)
Wraps: (4) ×
×
Error types: (1) *withstack.withStack (2) *secondary.withSecondaryError (3) *errutil.withPrefix (4) *fmttests.errNoFmt
-- report composition:
*fmttests.errNoFmt
*errutil.withPrefix: new-style ×
*secondary.withSecondaryError: details for github.com/cockroachdb/errors/withstack/*withstack.withStack:::
<path>:<lineno>: *withstack.withStack (top exception)
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
github.com/cockroachdb/errors/errutil/*errutil.withPrefix (*::)
github.com/cockroachdb/errors/secondary/*secondary.withSecondaryError (*::)
github.com/cockroachdb/errors/withstack/*withstack.withStack (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "<path>:<lineno> ...funcNN...
Title: "*fmttests.errNoFmt: new-style ×: ×\nvia *withstack.withStack"
<path>:<lineno>:
   (runtime) goexit()
<path>:<lineno>:
   (testing) tRunner()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven.Walk)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) Walk()
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.TestDatadriven)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) RunTest()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runTestInternal()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runDirectiveOrSubTest()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven) runDirective()
<path>:<lineno>:
   (github.com/cockroachdb/datadriven.runDirective)...funcNN...
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.TestDatadriven.func2) 1()
<path>:<lineno>:
   (github.com/cockroachdb/errors/fmttests.glob.)...funcNN...
