run
fmt innerone innertwo
assertion outerthree outerfour
opaque

require (?s)innerone.*innertwo
----
&assert.withAssertionFailure{
    cause: &errbase.opaqueWrapper{
        cause: &barriers.barrierErr{
            smsg:      "‹innerone›\n‹innertwo›",
            maskedErr: &errbase.opaqueLeaf{
                msg:     "innerone\ninnertwo",
                details: errorspb.EncodedErrorDetails{
                    OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
                    ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
                    ReportablePayload: nil,
                    FullDetails:       (*types.Any)(nil),
                },
            },
        },
        prefix:  "",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/withstack/*withstack.withStack",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/withstack/*withstack.withStack", Extension:""},
            ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
            FullDetails:       (*types.Any)(nil),
        },
        messageType: 0,
    },
}
=====
===== non-redactable formats
=====
== %#v
&assert.withAssertionFailure{
    cause: &errbase.opaqueWrapper{
        cause: &barriers.barrierErr{
            smsg:      "‹innerone›\n‹innertwo›",
            maskedErr: &errbase.opaqueLeaf{
                msg:     "innerone\ninnertwo",
                details: errorspb.EncodedErrorDetails{
                    OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
                    ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
                    ReportablePayload: nil,
                    FullDetails:       (*types.Any)(nil),
                },
            },
        },
        prefix:  "",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/withstack/*withstack.withStack",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/withstack/*withstack.withStack", Extension:""},
            ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
            FullDetails:       (*types.Any)(nil),
        },
        messageType: 0,
    },
}
== 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)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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
  |   |
  |   | (opaque error leaf)
  |   | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
  | Error types: (1) *errbase.opaqueLeaf
Error types: (1) *assert.withAssertionFailure (2) *errbase.opaqueWrapper (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)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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›
  |   |
  |   | (opaque error leaf)
  |   | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
  | Error types: (1) *errbase.opaqueLeaf
Error types: (1) *assert.withAssertionFailure (2) *errbase.opaqueWrapper (3) *barriers.barrierErr
=====
===== Sentry reporting
=====
== Message payload
<path>:<lineno>: ×
(1) assertion failure
Wraps: (2)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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) ×
  |   | ×
  |   |
  |   | (opaque error leaf)
  |   | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
  | Error types: (1) *errbase.opaqueLeaf
Error types: (1) *assert.withAssertionFailure (2) *errbase.opaqueWrapper (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
fmt innerone innertwo
assertwrap outerthree outerfour
opaque

require (?s)outerthree.*outerfour.*innerone.*innertwo
----
&assert.withAssertionFailure{
    cause: &errbase.opaqueWrapper{
        cause: &errutil.withPrefix{
            cause: &barriers.barrierErr{
                smsg:      "‹innerone›\n‹innertwo›",
                maskedErr: &errbase.opaqueLeaf{
                    msg:     "innerone\ninnertwo",
                    details: errorspb.EncodedErrorDetails{
                        OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
                        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
                        ReportablePayload: nil,
                        FullDetails:       (*types.Any)(nil),
                    },
                },
            },
            prefix: "assertmsg: ‹outerthree›\n‹outerfour›",
        },
        prefix:  "",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/withstack/*withstack.withStack",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/withstack/*withstack.withStack", Extension:""},
            ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
            FullDetails:       (*types.Any)(nil),
        },
        messageType: 0,
    },
}
=====
===== non-redactable formats
=====
== %#v
&assert.withAssertionFailure{
    cause: &errbase.opaqueWrapper{
        cause: &errutil.withPrefix{
            cause: &barriers.barrierErr{
                smsg:      "‹innerone›\n‹innertwo›",
                maskedErr: &errbase.opaqueLeaf{
                    msg:     "innerone\ninnertwo",
                    details: errorspb.EncodedErrorDetails{
                        OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
                        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
                        ReportablePayload: nil,
                        FullDetails:       (*types.Any)(nil),
                    },
                },
            },
            prefix: "assertmsg: ‹outerthree›\n‹outerfour›",
        },
        prefix:  "",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/withstack/*withstack.withStack",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/withstack/*withstack.withStack", Extension:""},
            ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
            FullDetails:       (*types.Any)(nil),
        },
        messageType: 0,
    },
}
== 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)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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
  |   |
  |   | (opaque error leaf)
  |   | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
  | Error types: (1) *errbase.opaqueLeaf
Error types: (1) *assert.withAssertionFailure (2) *errbase.opaqueWrapper (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)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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›
  |   |
  |   | (opaque error leaf)
  |   | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
  | Error types: (1) *errbase.opaqueLeaf
Error types: (1) *assert.withAssertionFailure (2) *errbase.opaqueWrapper (3) *errutil.withPrefix (4) *barriers.barrierErr
=====
===== Sentry reporting
=====
== Message payload
<path>:<lineno>: assertmsg: ×: ×
(1) assertion failure
Wraps: (2)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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) ×
  |   | ×
  |   |
  |   | (opaque error leaf)
  |   | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
  | Error types: (1) *errbase.opaqueLeaf
Error types: (1) *assert.withAssertionFailure (2) *errbase.opaqueWrapper (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
fmt innerone innertwo
barrier outerthree outerfour
opaque

require (?s)innerone.*innertwo
----
&barriers.barrierErr{
    smsg:      "‹innerone›\n‹innertwo›",
    maskedErr: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
}
=====
===== non-redactable formats
=====
== %#v
&barriers.barrierErr{
    smsg:      "‹innerone›\n‹innertwo›",
    maskedErr: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(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) innerone
  | innertwo
  | -- cause hidden behind barrier
  | innerone
  | (1) innerone
  |   | innertwo
  |   |
  |   | (opaque error leaf)
  |   | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
  | Error types: (1) *errbase.opaqueLeaf
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›
  |   |
  |   | (opaque error leaf)
  |   | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
  | Error types: (1) *errbase.opaqueLeaf
Error types: (1) *barriers.barrierErr
=====
===== Sentry reporting
=====
== Message payload
×
(1) ×
  | ×
  | -- cause hidden behind barrier
  | ×
  | (1) ×
  |   | ×
  |   |
  |   | (opaque error leaf)
  |   | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
  | Error types: (1) *errbase.opaqueLeaf
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
fmt innerone innertwo
delegate outerthree outerfour
opaque

require (?s)outerthree.*outerfour.*innerone.*innertwo
----
&errbase.opaqueWrapper{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix:  "outerthree\nouterfour",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.werrDelegate",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.werrDelegate", Extension:""},
        ReportablePayload: nil,
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
=====
===== non-redactable formats
=====
== %#v
&errbase.opaqueWrapper{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix:  "outerthree\nouterfour",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.werrDelegate",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.werrDelegate", Extension:""},
        ReportablePayload: nil,
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
== 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
  |
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrDelegate
Wraps: (2) innerone
  | innertwo
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
== %#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›
  |
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrDelegate
Wraps: (2) ‹innerone›
  | ‹innertwo›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
×: ×
(1) ×
  | ×
  |
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrDelegate
Wraps: (2) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
*fmttests.werrDelegate
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.werrDelegate (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errFmt"
Title: "×: ×"
(NO STACKTRACE)

run
fmt innerone innertwo
delegate-empty outerthree outerfour
opaque

require (?s)innerone.*innertwo
----
&errbase.opaqueWrapper{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix:  "",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.werrDelegateEmpty",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.werrDelegateEmpty", Extension:""},
        ReportablePayload: nil,
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
=====
===== non-redactable formats
=====
== %#v
&errbase.opaqueWrapper{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix:  "",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.werrDelegateEmpty",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.werrDelegateEmpty", Extension:""},
        ReportablePayload: nil,
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
== Error()
innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
innerone
(1)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrDelegateEmpty
Wraps: (2) innerone
  | innertwo
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
== %#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)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrDelegateEmpty
Wraps: (2) ‹innerone›
  | ‹innertwo›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
×
(1)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrDelegateEmpty
Wraps: (2) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
*fmttests.werrDelegateEmpty
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.werrDelegateEmpty (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errFmt"
Title: "×"
(NO STACKTRACE)

run
fmt innerone innertwo
delegate-noprefix outerthree outerfour
opaque

require (?s)innerone.*innertwo
----
&errbase.opaqueWrapper{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix:  "",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.werrDelegateNoPrefix",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.werrDelegateNoPrefix", Extension:""},
        ReportablePayload: nil,
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
=====
===== non-redactable formats
=====
== %#v
&errbase.opaqueWrapper{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix:  "",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.werrDelegateNoPrefix",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.werrDelegateNoPrefix", Extension:""},
        ReportablePayload: nil,
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
== Error()
innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
innerone
(1)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrDelegateNoPrefix
Wraps: (2) innerone
  | innertwo
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
== %#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)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrDelegateNoPrefix
Wraps: (2) ‹innerone›
  | ‹innertwo›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
×
(1)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrDelegateNoPrefix
Wraps: (2) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
*fmttests.werrDelegateNoPrefix
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.werrDelegateNoPrefix (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errFmt"
Title: "×"
(NO STACKTRACE)

run
fmt innerone innertwo
detail outerthree outerfour
opaque

require (?s)innerone.*innertwo
----
&hintdetail.withDetail{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    detail: "outerthree\nouterfour",
}
=====
===== non-redactable formats
=====
== %#v
&hintdetail.withDetail{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    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
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *hintdetail.withDetail (2) *errbase.opaqueLeaf
== %#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›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *hintdetail.withDetail (2) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
×
(1) ×
×
Wraps: (2) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *hintdetail.withDetail (2) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
*hintdetail.withDetail
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
github.com/cockroachdb/errors/hintdetail/*hintdetail.withDetail (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errFmt"
Title: "×"
(NO STACKTRACE)

run
fmt innerone innertwo
domain outerthree outerfour
opaque

require (?s)innerone.*innertwo
----
&domains.withDomain{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    domain: "mydomain",
}
=====
===== non-redactable formats
=====
== %#v
&domains.withDomain{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    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
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *domains.withDomain (2) *errbase.opaqueLeaf
== %#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›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *domains.withDomain (2) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
×
(1) mydomain
Wraps: (2) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *domains.withDomain (2) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
*domains.withDomain: mydomain
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
github.com/cockroachdb/errors/domains/*domains.withDomain (*::mydomain)
== Exception 1 (Module: "mydomain")
Type: "*fmttests.errFmt"
Title: "×"
(NO STACKTRACE)

run
fmt innerone innertwo
elided-cause outerthree outerfour
opaque

require (?s)outerthree.*outerfour
----
&fmttests.werrWithElidedCause{
    wrapped: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    msg: "outerthree\nouterfour",
}
=====
===== non-redactable formats
=====
== %#v
&fmttests.werrWithElidedCause{
    wrapped: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    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
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *fmttests.werrWithElidedCause (2) *errbase.opaqueLeaf
== %#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›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *fmttests.werrWithElidedCause (2) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
×
(1) ×
×
Wraps: (2) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *fmttests.werrWithElidedCause (2) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
*fmttests.werrWithElidedCause
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.werrWithElidedCause (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errFmt"
Title: "×"
(NO STACKTRACE)

run
fmt innerone innertwo
empty outerthree outerfour
opaque

require (?s)innerone.*innertwo
----
&errbase.opaqueWrapper{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix:  "",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.werrEmpty",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.werrEmpty", Extension:""},
        ReportablePayload: nil,
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
=====
===== non-redactable formats
=====
== %#v
&errbase.opaqueWrapper{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix:  "",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.werrEmpty",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.werrEmpty", Extension:""},
        ReportablePayload: nil,
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
== Error()
innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
innerone
(1)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrEmpty
Wraps: (2) innerone
  | innertwo
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
== %#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)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrEmpty
Wraps: (2) ‹innerone›
  | ‹innertwo›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
×
(1)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrEmpty
Wraps: (2) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
*fmttests.werrEmpty
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.werrEmpty (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errFmt"
Title: "×"
(NO STACKTRACE)

run
fmt innerone innertwo
fmt outerthree outerfour
opaque

require (?s)outerthree.*outerfour.*innerone.*innertwo
----
&errbase.opaqueWrapper{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix:  "outerthree\nouterfour",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.werrFmt",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.werrFmt", Extension:""},
        ReportablePayload: nil,
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
=====
===== non-redactable formats
=====
== %#v
&errbase.opaqueWrapper{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix:  "outerthree\nouterfour",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.werrFmt",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.werrFmt", Extension:""},
        ReportablePayload: nil,
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
== 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
  |
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrFmt
Wraps: (2) innerone
  | innertwo
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
== %#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›
  |
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrFmt
Wraps: (2) ‹innerone›
  | ‹innertwo›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
×: ×
(1) ×
  | ×
  |
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrFmt
Wraps: (2) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
*fmttests.werrFmt
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.werrFmt (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errFmt"
Title: "×: ×"
(NO STACKTRACE)

run
fmt innerone innertwo
fmt-old outerthree outerfour
opaque

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

require (?s)outerthree.*outerfour.*innerone.*innertwo
----
&errbase.opaqueWrapper{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix:  "outerthree\nouterfour",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.werrFmto",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.werrFmto", Extension:""},
        ReportablePayload: nil,
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
=====
===== non-redactable formats
=====
== %#v
&errbase.opaqueWrapper{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix:  "outerthree\nouterfour",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.werrFmto",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.werrFmto", Extension:""},
        ReportablePayload: nil,
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
== 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
  |
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrFmto
Wraps: (2) innerone
  | innertwo
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
== %#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›
  |
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrFmto
Wraps: (2) ‹innerone›
  | ‹innertwo›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
×: ×
(1) ×
  | ×
  |
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrFmto
Wraps: (2) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
*fmttests.werrFmto
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.werrFmto (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errFmt"
Title: "×: ×"
(NO STACKTRACE)

run
fmt innerone innertwo
fmt-old-delegate outerthree outerfour
opaque

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

require (?s)outerthree.*outerfour.*innerone.*innertwo
----
&errbase.opaqueWrapper{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix:  "outerthree\nouterfour",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.werrFmtoDelegate",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.werrFmtoDelegate", Extension:""},
        ReportablePayload: nil,
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
=====
===== non-redactable formats
=====
== %#v
&errbase.opaqueWrapper{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix:  "outerthree\nouterfour",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.werrFmtoDelegate",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.werrFmtoDelegate", Extension:""},
        ReportablePayload: nil,
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
== 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
  |
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrFmtoDelegate
Wraps: (2) innerone
  | innertwo
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
== %#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›
  |
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrFmtoDelegate
Wraps: (2) ‹innerone›
  | ‹innertwo›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
×: ×
(1) ×
  | ×
  |
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrFmtoDelegate
Wraps: (2) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
*fmttests.werrFmtoDelegate
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.werrFmtoDelegate (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errFmt"
Title: "×: ×"
(NO STACKTRACE)

run
fmt innerone innertwo
fmt-partial outerthree outerfour
opaque

require (?s)outerthree.*outerfour.*innerone.*innertwo
----
&errbase.opaqueWrapper{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix:  "outerthree\nouterfour",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.werrFmtp",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.werrFmtp", Extension:""},
        ReportablePayload: nil,
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
=====
===== non-redactable formats
=====
== %#v
&errbase.opaqueWrapper{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix:  "outerthree\nouterfour",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.werrFmtp",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.werrFmtp", Extension:""},
        ReportablePayload: nil,
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
== 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
  |
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrFmtp
Wraps: (2) innerone
  | innertwo
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
== %#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›
  |
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrFmtp
Wraps: (2) ‹innerone›
  | ‹innertwo›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
×: ×
(1) ×
  | ×
  |
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrFmtp
Wraps: (2) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
*fmttests.werrFmtp
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.werrFmtp (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errFmt"
Title: "×: ×"
(NO STACKTRACE)

run
fmt innerone innertwo
go-errorf outerthree outerfour
opaque

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

require (?s)outerthree.*outerfour.*innerone.*innertwo
----
&errbase.opaqueWrapper{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix:  "outerthree\nouterfour - innerone\ninnertwo",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "fmt/*fmt.wrapError",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"fmt/*fmt.wrapError", Extension:""},
        ReportablePayload: nil,
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 1,
}
=====
===== non-redactable formats
=====
== %#v
&errbase.opaqueWrapper{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix:  "outerthree\nouterfour - innerone\ninnertwo",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "fmt/*fmt.wrapError",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"fmt/*fmt.wrapError", Extension:""},
        ReportablePayload: nil,
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 1,
}
== 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
(1) outerthree
  | outerfour - innerone
  | innertwo
  |
  | (opaque error wrapper)
  | type name: fmt/*fmt.wrapError
Wraps: (2) innerone
  | innertwo
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
== %#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›
(1) ‹outerthree›
  | ‹outerfour - innerone›
  | ‹innertwo›
  |
  | (opaque error wrapper)
  | type name: fmt/*fmt.wrapError
Wraps: (2) ‹innerone›
  | ‹innertwo›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
×
(1) ×
  | ×
  | ×
  |
  | (opaque error wrapper)
  | type name: fmt/*fmt.wrapError
Wraps: (2) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
*fmt.wrapError
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
fmt/*fmt.wrapError (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errFmt"
Title: "×"
(NO STACKTRACE)

run
fmt innerone innertwo
go-errorf-multi outerthree outerfour
opaque

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

require (?s)outerthree.*outerfour.*innerone.*innertwo
----
&errbase.opaqueLeafCauses{
    opaqueLeaf: errbase.opaqueLeaf{
        msg:     "outerthree\nouterfour - innerone\ninnertwo sibling error in wrapper",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "fmt/*fmt.wrapErrors",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"fmt/*fmt.wrapErrors", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    causes: {
        &errbase.opaqueLeaf{
            msg:     "innerone\ninnertwo",
            details: errorspb.EncodedErrorDetails{
                OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
                ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
                ReportablePayload: nil,
                FullDetails:       (*types.Any)(nil),
            },
        },
        &errbase.opaqueLeaf{
            msg:     "sibling error in wrapper",
            details: errorspb.EncodedErrorDetails{
                OriginalTypeName:  "github.com/pkg/errors/*errors.fundamental",
                ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/pkg/errors/*errors.fundamental", Extension:""},
                ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
                FullDetails:       (*types.Any)(nil),
            },
        },
    },
}
=====
===== non-redactable formats
=====
== %#v
&errbase.opaqueLeafCauses{
    opaqueLeaf: errbase.opaqueLeaf{
        msg:     "outerthree\nouterfour - innerone\ninnertwo sibling error in wrapper",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "fmt/*fmt.wrapErrors",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"fmt/*fmt.wrapErrors", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    causes: {
        &errbase.opaqueLeaf{
            msg:     "innerone\ninnertwo",
            details: errorspb.EncodedErrorDetails{
                OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
                ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
                ReportablePayload: nil,
                FullDetails:       (*types.Any)(nil),
            },
        },
        &errbase.opaqueLeaf{
            msg:     "sibling error in wrapper",
            details: errorspb.EncodedErrorDetails{
                OriginalTypeName:  "github.com/pkg/errors/*errors.fundamental",
                ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/pkg/errors/*errors.fundamental", Extension:""},
                ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
                FullDetails:       (*types.Any)(nil),
            },
        },
    },
}
== 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
outerthree
(1) outerthree
  | outerfour - innerone
  | innertwo sibling error in wrapper
  |
  | (opaque error leaf)
  | type name: fmt/*fmt.wrapErrors
Wraps: (2) sibling error in wrapper
  |
  | (opaque error leaf)
  | type name: github.com/pkg/errors/*errors.fundamental
  | reportable 0:
  |
  | 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
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueLeafCauses (2) *errbase.opaqueLeaf (3) *errbase.opaqueLeaf
== %#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 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
‹outerthree›
(1) ‹outerthree›
  | ‹outerfour - innerone›
  | ‹innertwo sibling error in wrapper›
  |
  | (opaque error leaf)
  | type name: fmt/*fmt.wrapErrors
Wraps: (2) ‹sibling error in wrapper›
  |
  | (opaque error leaf)
  | type name: github.com/pkg/errors/*errors.fundamental
  | reportable 0:
  |
  | 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›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueLeafCauses (2) *errbase.opaqueLeaf (3) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
×
(1) ×
  | ×
  | ×
  |
  | (opaque error leaf)
  | type name: fmt/*fmt.wrapErrors
Wraps: (2) ×
  |
  | (opaque error leaf)
  | type name: github.com/pkg/errors/*errors.fundamental
  | reportable 0:
  |
  | 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) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueLeafCauses (2) *errbase.opaqueLeaf (3) *errbase.opaqueLeaf
-- report composition:
<path>:<lineno>: *errors.fundamental (top exception)
*fmttests.errFmt
*fmt.wrapErrors
== Extra "error types"
github.com/pkg/errors/*errors.fundamental (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
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
fmt innerone innertwo
go-errorf-suffix outerthree outerfour
opaque

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

require (?s)innerone.*innertwo.*outerthree.*outerfour
----
&errbase.opaqueWrapper{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix:  "innerone\ninnertwo - outerthree\nouterfour",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "fmt/*fmt.wrapError",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"fmt/*fmt.wrapError", Extension:""},
        ReportablePayload: nil,
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 1,
}
=====
===== non-redactable formats
=====
== %#v
&errbase.opaqueWrapper{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix:  "innerone\ninnertwo - outerthree\nouterfour",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "fmt/*fmt.wrapError",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"fmt/*fmt.wrapError", Extension:""},
        ReportablePayload: nil,
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 1,
}
== 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
  |
  | (opaque error wrapper)
  | type name: fmt/*fmt.wrapError
Wraps: (2) innerone
  | innertwo
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
== %#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›
  |
  | (opaque error wrapper)
  | type name: fmt/*fmt.wrapError
Wraps: (2) ‹innerone›
  | ‹innertwo›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
×
(1) ×
  | ×
  | ×
  |
  | (opaque error wrapper)
  | type name: fmt/*fmt.wrapError
Wraps: (2) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
*fmt.wrapError
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
fmt/*fmt.wrapError (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errFmt"
Title: "×"
(NO STACKTRACE)

run
fmt innerone innertwo
goerr outerthree outerfour
opaque

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

require (?s)outerthree.*outerfour.*innerone.*innertwo
----
&errbase.opaqueWrapper{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix:  "outerthree\nouterfour",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "fmt/*fmt.wrapError",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"fmt/*fmt.wrapError", Extension:""},
        ReportablePayload: nil,
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
=====
===== non-redactable formats
=====
== %#v
&errbase.opaqueWrapper{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix:  "outerthree\nouterfour",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "fmt/*fmt.wrapError",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"fmt/*fmt.wrapError", Extension:""},
        ReportablePayload: nil,
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
== 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
  |
  | (opaque error wrapper)
  | type name: fmt/*fmt.wrapError
Wraps: (2) innerone
  | innertwo
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
== %#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›
  |
  | (opaque error wrapper)
  | type name: fmt/*fmt.wrapError
Wraps: (2) ‹innerone›
  | ‹innertwo›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
×: ×
(1) ×
  | ×
  |
  | (opaque error wrapper)
  | type name: fmt/*fmt.wrapError
Wraps: (2) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
*fmt.wrapError
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
fmt/*fmt.wrapError (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errFmt"
Title: "×: ×"
(NO STACKTRACE)

run
fmt innerone innertwo
handled-domain outerthree outerfour
opaque

require (?s)innerone.*innertwo
----
&domains.withDomain{
    cause: &barriers.barrierErr{
        smsg:      "‹innerone›\n‹innertwo›",
        maskedErr: &errbase.opaqueLeaf{
            msg:     "innerone\ninnertwo",
            details: errorspb.EncodedErrorDetails{
                OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
                ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
                ReportablePayload: nil,
                FullDetails:       (*types.Any)(nil),
            },
        },
    },
    domain: "error domain: pkg <path>",
}
=====
===== non-redactable formats
=====
== %#v
&domains.withDomain{
    cause: &barriers.barrierErr{
        smsg:      "‹innerone›\n‹innertwo›",
        maskedErr: &errbase.opaqueLeaf{
            msg:     "innerone\ninnertwo",
            details: errorspb.EncodedErrorDetails{
                OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
                ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
                ReportablePayload: nil,
                FullDetails:       (*types.Any)(nil),
            },
        },
    },
    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
  |   |
  |   | (opaque error leaf)
  |   | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
  | Error types: (1) *errbase.opaqueLeaf
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›
  |   |
  |   | (opaque error leaf)
  |   | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
  | Error types: (1) *errbase.opaqueLeaf
Error types: (1) *domains.withDomain (2) *barriers.barrierErr
=====
===== Sentry reporting
=====
== Message payload
×
(1) error domain: pkg <path>
Wraps: (2) ×
  | ×
  | -- cause hidden behind barrier
  | ×
  | (1) ×
  |   | ×
  |   |
  |   | (opaque error leaf)
  |   | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
  | Error types: (1) *errbase.opaqueLeaf
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
fmt innerone innertwo
hint outerthree outerfour
opaque

require (?s)innerone.*innertwo
----
&hintdetail.withHint{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    hint: "outerthree\nouterfour",
}
=====
===== non-redactable formats
=====
== %#v
&hintdetail.withHint{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    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
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *hintdetail.withHint (2) *errbase.opaqueLeaf
== %#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›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *hintdetail.withHint (2) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
×
(1) ×
×
Wraps: (2) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *hintdetail.withHint (2) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
*hintdetail.withHint
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
github.com/cockroachdb/errors/hintdetail/*hintdetail.withHint (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errFmt"
Title: "×"
(NO STACKTRACE)

run
fmt innerone innertwo
issuelink outerthree outerfour
opaque

require (?s)innerone.*innertwo
----
&issuelink.withIssueLink{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    IssueLink: issuelink.IssueLink{IssueURL:"https://mysite", Detail:"outerthree\nouterfour"},
}
=====
===== non-redactable formats
=====
== %#v
&issuelink.withIssueLink{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    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
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *issuelink.withIssueLink (2) *errbase.opaqueLeaf
== %#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›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *issuelink.withIssueLink (2) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
×
(1) issue: https://mysite
  | detail: outerthree
  | outerfour
Wraps: (2) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *issuelink.withIssueLink (2) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
*issuelink.withIssueLink: https://mysite
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
github.com/cockroachdb/errors/issuelink/*issuelink.withIssueLink (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errFmt"
Title: "×"
(NO STACKTRACE)

run
fmt innerone innertwo
join outerthree outerfour
opaque

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

require (?s)innerone.*innertwo
----
&join.joinError{
    errs: {
        &errbase.opaqueLeaf{
            msg:     "innerone\ninnertwo",
            details: errorspb.EncodedErrorDetails{
                OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
                ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
                ReportablePayload: nil,
                FullDetails:       (*types.Any)(nil),
            },
        },
        &errbase.opaqueWrapper{
            cause:   &errutil.leafError{msg:"outerthree\nouterfour"},
            prefix:  "",
            details: errorspb.EncodedErrorDetails{
                OriginalTypeName:  "github.com/cockroachdb/errors/withstack/*withstack.withStack",
                ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/withstack/*withstack.withStack", Extension:""},
                ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
                FullDetails:       (*types.Any)(nil),
            },
            messageType: 0,
        },
    },
}
=====
===== non-redactable formats
=====
== %#v
&join.joinError{
    errs: {
        &errbase.opaqueLeaf{
            msg:     "innerone\ninnertwo",
            details: errorspb.EncodedErrorDetails{
                OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
                ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
                ReportablePayload: nil,
                FullDetails:       (*types.Any)(nil),
            },
        },
        &errbase.opaqueWrapper{
            cause:   &errutil.leafError{msg:"outerthree\nouterfour"},
            prefix:  "",
            details: errorspb.EncodedErrorDetails{
                OriginalTypeName:  "github.com/cockroachdb/errors/withstack/*withstack.withStack",
                ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/withstack/*withstack.withStack", Extension:""},
                ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
                FullDetails:       (*types.Any)(nil),
            },
            messageType: 0,
        },
    },
}
== 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)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *join.joinError (2) *errbase.opaqueWrapper (3) *errutil.leafError (4) *errbase.opaqueLeaf
== %#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)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *join.joinError (2) *errbase.opaqueWrapper (3) *errutil.leafError (4) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
×
(1) ×
  | ×
  | outerthree
  | outerfour
Wraps: (2)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *join.joinError (2) *errbase.opaqueWrapper (3) *errutil.leafError (4) *errbase.opaqueLeaf
-- report composition:
*errutil.leafError: outerthree
<path>:<lineno>: *withstack.withStack (top exception)
*fmttests.errFmt
*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.errFmt (*::)
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
fmt innerone innertwo
migrated outerthree outerfour
opaque

require (?s)innerone.*innertwo
----
&errbase.opaqueWrapper{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix:  "",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.werrMigrated",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"some/previous/path/prevpkg.prevType", Extension:""},
        ReportablePayload: nil,
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
=====
===== non-redactable formats
=====
== %#v
&errbase.opaqueWrapper{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix:  "",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.werrMigrated",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"some/previous/path/prevpkg.prevType", Extension:""},
        ReportablePayload: nil,
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
== Error()
innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
innerone
(1)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrMigrated
Wraps: (2) innerone
  | innertwo
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
== %#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)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrMigrated
Wraps: (2) ‹innerone›
  | ‹innertwo›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
×
(1)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrMigrated
Wraps: (2) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
*fmttests.werrMigrated
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.werrMigrated (some/previous/path/prevpkg.prevType::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errFmt"
Title: "×"
(NO STACKTRACE)

run
fmt innerone innertwo
msg outerthree outerfour
opaque

require (?s)outerthree.*outerfour.*innerone.*innertwo
----
&errutil.withPrefix{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix: "outerthree\nouterfour",
}
=====
===== non-redactable formats
=====
== %#v
&errutil.withPrefix{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    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
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errutil.withPrefix (2) *errbase.opaqueLeaf
== %#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›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errutil.withPrefix (2) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
outerthree: ×
(1) outerthree
  | outerfour
Wraps: (2) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errutil.withPrefix (2) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
*errutil.withPrefix: outerthree
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
github.com/cockroachdb/errors/errutil/*errutil.withPrefix (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errFmt"
Title: "outerthree: ×"
(NO STACKTRACE)

run
fmt innerone innertwo
multi-cause outerthree outerfour
opaque

require (?s)outerthree.*outerfour.*innerone.*innertwo
----
&fmttests.errMultiCause{
    causes: {
        &fmttests.errMultiCause{
            causes: {
                &errbase.opaqueLeaf{
                    msg:     "innerone\ninnertwo",
                    details: errorspb.EncodedErrorDetails{
                        OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
                        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
                        ReportablePayload: nil,
                        FullDetails:       (*types.Any)(nil),
                    },
                },
                &errbase.opaqueWrapper{
                    cause:   &errutil.leafError{msg:"outerthree\nouterfour"},
                    prefix:  "",
                    details: errorspb.EncodedErrorDetails{
                        OriginalTypeName:  "github.com/cockroachdb/errors/withstack/*withstack.withStack",
                        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/withstack/*withstack.withStack", Extension:""},
                        ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
                        FullDetails:       (*types.Any)(nil),
                    },
                    messageType: 0,
                },
            },
            msg:   "C",
            elide: false,
        },
        &fmttests.errMultiCause{
            causes: {
                &errbase.opaqueWrapper{
                    cause:   &errutil.leafError{msg:"included 1"},
                    prefix:  "",
                    details: errorspb.EncodedErrorDetails{
                        OriginalTypeName:  "github.com/cockroachdb/errors/withstack/*withstack.withStack",
                        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/withstack/*withstack.withStack", Extension:""},
                        ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
                        FullDetails:       (*types.Any)(nil),
                    },
                    messageType: 0,
                },
                &errbase.opaqueWrapper{
                    cause:   &errutil.leafError{msg:"included 2"},
                    prefix:  "",
                    details: errorspb.EncodedErrorDetails{
                        OriginalTypeName:  "github.com/cockroachdb/errors/withstack/*withstack.withStack",
                        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/withstack/*withstack.withStack", Extension:""},
                        ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
                        FullDetails:       (*types.Any)(nil),
                    },
                    messageType: 0,
                },
            },
            msg:   "B",
            elide: false,
        },
    },
    msg:   "A",
    elide: false,
}
=====
===== non-redactable formats
=====
== %#v
&fmttests.errMultiCause{
    causes: {
        &fmttests.errMultiCause{
            causes: {
                &errbase.opaqueLeaf{
                    msg:     "innerone\ninnertwo",
                    details: errorspb.EncodedErrorDetails{
                        OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
                        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
                        ReportablePayload: nil,
                        FullDetails:       (*types.Any)(nil),
                    },
                },
                &errbase.opaqueWrapper{
                    cause:   &errutil.leafError{msg:"outerthree\nouterfour"},
                    prefix:  "",
                    details: errorspb.EncodedErrorDetails{
                        OriginalTypeName:  "github.com/cockroachdb/errors/withstack/*withstack.withStack",
                        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/withstack/*withstack.withStack", Extension:""},
                        ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
                        FullDetails:       (*types.Any)(nil),
                    },
                    messageType: 0,
                },
            },
            msg:   "C",
            elide: false,
        },
        &fmttests.errMultiCause{
            causes: {
                &errbase.opaqueWrapper{
                    cause:   &errutil.leafError{msg:"included 1"},
                    prefix:  "",
                    details: errorspb.EncodedErrorDetails{
                        OriginalTypeName:  "github.com/cockroachdb/errors/withstack/*withstack.withStack",
                        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/withstack/*withstack.withStack", Extension:""},
                        ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
                        FullDetails:       (*types.Any)(nil),
                    },
                    messageType: 0,
                },
                &errbase.opaqueWrapper{
                    cause:   &errutil.leafError{msg:"included 2"},
                    prefix:  "",
                    details: errorspb.EncodedErrorDetails{
                        OriginalTypeName:  "github.com/cockroachdb/errors/withstack/*withstack.withStack",
                        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/withstack/*withstack.withStack", Extension:""},
                        ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
                        FullDetails:       (*types.Any)(nil),
                    },
                    messageType: 0,
                },
            },
            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)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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: (4) included 2
└─ Wraps: (5)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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: (6) included 1
Wraps: (7) C
└─ Wraps: (8)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *fmttests.errMultiCause (2) *fmttests.errMultiCause (3) *errbase.opaqueWrapper (4) *errutil.leafError (5) *errbase.opaqueWrapper (6) *errutil.leafError (7) *fmttests.errMultiCause (8) *errbase.opaqueWrapper (9) *errutil.leafError (10) *errbase.opaqueLeaf
== %#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)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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: (4) included 2
└─ Wraps: (5)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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: (6) included 1
Wraps: (7) ‹C›
└─ Wraps: (8)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *fmttests.errMultiCause (2) *fmttests.errMultiCause (3) *errbase.opaqueWrapper (4) *errutil.leafError (5) *errbase.opaqueWrapper (6) *errutil.leafError (7) *fmttests.errMultiCause (8) *errbase.opaqueWrapper (9) *errutil.leafError (10) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
×: ×: included 2: included 1: ×: outerthree: ×
(1) ×
Wraps: (2) ×
└─ Wraps: (3)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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: (4) included 2
└─ Wraps: (5)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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: (6) included 1
Wraps: (7) ×
└─ Wraps: (8)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *fmttests.errMultiCause (2) *fmttests.errMultiCause (3) *errbase.opaqueWrapper (4) *errutil.leafError (5) *errbase.opaqueWrapper (6) *errutil.leafError (7) *fmttests.errMultiCause (8) *errbase.opaqueWrapper (9) *errutil.leafError (10) *errbase.opaqueLeaf
-- 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.errFmt
*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.errFmt (*::)
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
fmt innerone innertwo
multi-elided-cause outerthree outerfour
opaque

require (?s)outerthree.*outerfour.*innerone.*innertwo
----
&fmttests.errMultiCause{
    causes: {
        &fmttests.errMultiCause{
            causes: {
                &errbase.opaqueLeaf{
                    msg:     "innerone\ninnertwo",
                    details: errorspb.EncodedErrorDetails{
                        OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
                        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
                        ReportablePayload: nil,
                        FullDetails:       (*types.Any)(nil),
                    },
                },
                &errbase.opaqueWrapper{
                    cause:   &errutil.leafError{msg:"outerthree\nouterfour"},
                    prefix:  "",
                    details: errorspb.EncodedErrorDetails{
                        OriginalTypeName:  "github.com/cockroachdb/errors/withstack/*withstack.withStack",
                        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/withstack/*withstack.withStack", Extension:""},
                        ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
                        FullDetails:       (*types.Any)(nil),
                    },
                    messageType: 0,
                },
            },
            msg:   "C",
            elide: false,
        },
        &fmttests.errMultiCause{
            causes: {
                &errbase.opaqueWrapper{
                    cause:   &errutil.leafError{msg:"elided 1"},
                    prefix:  "",
                    details: errorspb.EncodedErrorDetails{
                        OriginalTypeName:  "github.com/cockroachdb/errors/withstack/*withstack.withStack",
                        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/withstack/*withstack.withStack", Extension:""},
                        ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
                        FullDetails:       (*types.Any)(nil),
                    },
                    messageType: 0,
                },
                &errbase.opaqueWrapper{
                    cause:   &errutil.leafError{msg:"elided 2"},
                    prefix:  "",
                    details: errorspb.EncodedErrorDetails{
                        OriginalTypeName:  "github.com/cockroachdb/errors/withstack/*withstack.withStack",
                        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/withstack/*withstack.withStack", Extension:""},
                        ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
                        FullDetails:       (*types.Any)(nil),
                    },
                    messageType: 0,
                },
            },
            msg:   "B",
            elide: true,
        },
    },
    msg:   "A",
    elide: false,
}
=====
===== non-redactable formats
=====
== %#v
&fmttests.errMultiCause{
    causes: {
        &fmttests.errMultiCause{
            causes: {
                &errbase.opaqueLeaf{
                    msg:     "innerone\ninnertwo",
                    details: errorspb.EncodedErrorDetails{
                        OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
                        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
                        ReportablePayload: nil,
                        FullDetails:       (*types.Any)(nil),
                    },
                },
                &errbase.opaqueWrapper{
                    cause:   &errutil.leafError{msg:"outerthree\nouterfour"},
                    prefix:  "",
                    details: errorspb.EncodedErrorDetails{
                        OriginalTypeName:  "github.com/cockroachdb/errors/withstack/*withstack.withStack",
                        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/withstack/*withstack.withStack", Extension:""},
                        ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
                        FullDetails:       (*types.Any)(nil),
                    },
                    messageType: 0,
                },
            },
            msg:   "C",
            elide: false,
        },
        &fmttests.errMultiCause{
            causes: {
                &errbase.opaqueWrapper{
                    cause:   &errutil.leafError{msg:"elided 1"},
                    prefix:  "",
                    details: errorspb.EncodedErrorDetails{
                        OriginalTypeName:  "github.com/cockroachdb/errors/withstack/*withstack.withStack",
                        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/withstack/*withstack.withStack", Extension:""},
                        ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
                        FullDetails:       (*types.Any)(nil),
                    },
                    messageType: 0,
                },
                &errbase.opaqueWrapper{
                    cause:   &errutil.leafError{msg:"elided 2"},
                    prefix:  "",
                    details: errorspb.EncodedErrorDetails{
                        OriginalTypeName:  "github.com/cockroachdb/errors/withstack/*withstack.withStack",
                        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/withstack/*withstack.withStack", Extension:""},
                        ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
                        FullDetails:       (*types.Any)(nil),
                    },
                    messageType: 0,
                },
            },
            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)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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: (4) elided 2
└─ Wraps: (5)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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: (6) elided 1
Wraps: (7) C
└─ Wraps: (8)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *fmttests.errMultiCause (2) *fmttests.errMultiCause (3) *errbase.opaqueWrapper (4) *errutil.leafError (5) *errbase.opaqueWrapper (6) *errutil.leafError (7) *fmttests.errMultiCause (8) *errbase.opaqueWrapper (9) *errutil.leafError (10) *errbase.opaqueLeaf
== %#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)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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: (4) elided 2
└─ Wraps: (5)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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: (6) elided 1
Wraps: (7) ‹C›
└─ Wraps: (8)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *fmttests.errMultiCause (2) *fmttests.errMultiCause (3) *errbase.opaqueWrapper (4) *errutil.leafError (5) *errbase.opaqueWrapper (6) *errutil.leafError (7) *fmttests.errMultiCause (8) *errbase.opaqueWrapper (9) *errutil.leafError (10) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
×: ×: ×: outerthree: ×
(1) ×
Wraps: (2) ×
└─ Wraps: (3)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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: (4) elided 2
└─ Wraps: (5)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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: (6) elided 1
Wraps: (7) ×
└─ Wraps: (8)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *fmttests.errMultiCause (2) *fmttests.errMultiCause (3) *errbase.opaqueWrapper (4) *errutil.leafError (5) *errbase.opaqueWrapper (6) *errutil.leafError (7) *fmttests.errMultiCause (8) *errbase.opaqueWrapper (9) *errutil.leafError (10) *errbase.opaqueLeaf
-- 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.errFmt
*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.errFmt (*::)
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
fmt innerone innertwo
newfw outerthree outerfour
opaque

require (?s)outerthree.*outerfour.*innerone.*innertwo
----
&errbase.opaqueWrapper{
    cause: &secondary.withSecondaryError{
        cause: &errutil.withNewMessage{
            cause: &errbase.opaqueLeaf{
                msg:     "innerone\ninnertwo",
                details: errorspb.EncodedErrorDetails{
                    OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
                    ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
                    ReportablePayload: nil,
                    FullDetails:       (*types.Any)(nil),
                },
            },
            message: "new-style (‹outerthree›\n‹outerfour›) :: ‹innerone›\n‹innertwo› ::",
        },
        secondaryError: &errbase.opaqueLeaf{
            msg:     "innerone\ninnertwo",
            details: errorspb.EncodedErrorDetails{
                OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
                ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
                ReportablePayload: nil,
                FullDetails:       (*types.Any)(nil),
            },
        },
    },
    prefix:  "",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/withstack/*withstack.withStack",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/withstack/*withstack.withStack", Extension:""},
        ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
=====
===== non-redactable formats
=====
== %#v
&errbase.opaqueWrapper{
    cause: &secondary.withSecondaryError{
        cause: &errutil.withNewMessage{
            cause: &errbase.opaqueLeaf{
                msg:     "innerone\ninnertwo",
                details: errorspb.EncodedErrorDetails{
                    OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
                    ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
                    ReportablePayload: nil,
                    FullDetails:       (*types.Any)(nil),
                },
            },
            message: "new-style (‹outerthree›\n‹outerfour›) :: ‹innerone›\n‹innertwo› ::",
        },
        secondaryError: &errbase.opaqueLeaf{
            msg:     "innerone\ninnertwo",
            details: errorspb.EncodedErrorDetails{
                OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
                ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
                ReportablePayload: nil,
                FullDetails:       (*types.Any)(nil),
            },
        },
    },
    prefix:  "",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/withstack/*withstack.withStack",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/withstack/*withstack.withStack", Extension:""},
        ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
== 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)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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
  |   |
  |   | (opaque error leaf)
  |   | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
  | Error types: (1) *errbase.opaqueLeaf
Wraps: (3) new-style (outerthree
  | outerfour) :: innerone
  | innertwo ::
Wraps: (4) innerone
  | innertwo
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *secondary.withSecondaryError (3) *errutil.withNewMessage (4) *errbase.opaqueLeaf
== %#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)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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›
  |   |
  |   | (opaque error leaf)
  |   | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
  | Error types: (1) *errbase.opaqueLeaf
Wraps: (3) new-style (‹outerthree›
  | ‹outerfour›) :: ‹innerone›
  | ‹innertwo› ::
Wraps: (4) ‹innerone›
  | ‹innertwo›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *secondary.withSecondaryError (3) *errutil.withNewMessage (4) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
<path>:<lineno>: new-style (×
(1)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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) ×
  |   | ×
  |   |
  |   | (opaque error leaf)
  |   | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
  | Error types: (1) *errbase.opaqueLeaf
Wraps: (3) new-style (×
  | ×) :: ×
  | × ::
Wraps: (4) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *secondary.withSecondaryError (3) *errutil.withNewMessage (4) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
*errutil.withNewMessage: new-style (×
*secondary.withSecondaryError
<path>:<lineno>: *withstack.withStack (top exception)
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
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.errFmt: 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
fmt innerone innertwo
newfw-suffix outerthree outerfour
opaque

require (?s)innerone.*innertwo.*outerthree.*outerfour
----
&errbase.opaqueWrapper{
    cause: &secondary.withSecondaryError{
        cause: &errutil.withNewMessage{
            cause: &errbase.opaqueLeaf{
                msg:     "innerone\ninnertwo",
                details: errorspb.EncodedErrorDetails{
                    OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
                    ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
                    ReportablePayload: nil,
                    FullDetails:       (*types.Any)(nil),
                },
            },
            message: ":: ‹innerone›\n‹innertwo› :: new-style (‹outerthree›\n‹outerfour›)",
        },
        secondaryError: &errbase.opaqueLeaf{
            msg:     "innerone\ninnertwo",
            details: errorspb.EncodedErrorDetails{
                OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
                ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
                ReportablePayload: nil,
                FullDetails:       (*types.Any)(nil),
            },
        },
    },
    prefix:  "",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/withstack/*withstack.withStack",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/withstack/*withstack.withStack", Extension:""},
        ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
=====
===== non-redactable formats
=====
== %#v
&errbase.opaqueWrapper{
    cause: &secondary.withSecondaryError{
        cause: &errutil.withNewMessage{
            cause: &errbase.opaqueLeaf{
                msg:     "innerone\ninnertwo",
                details: errorspb.EncodedErrorDetails{
                    OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
                    ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
                    ReportablePayload: nil,
                    FullDetails:       (*types.Any)(nil),
                },
            },
            message: ":: ‹innerone›\n‹innertwo› :: new-style (‹outerthree›\n‹outerfour›)",
        },
        secondaryError: &errbase.opaqueLeaf{
            msg:     "innerone\ninnertwo",
            details: errorspb.EncodedErrorDetails{
                OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
                ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
                ReportablePayload: nil,
                FullDetails:       (*types.Any)(nil),
            },
        },
    },
    prefix:  "",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/withstack/*withstack.withStack",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/withstack/*withstack.withStack", Extension:""},
        ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
== 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)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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
  |   |
  |   | (opaque error leaf)
  |   | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
  | Error types: (1) *errbase.opaqueLeaf
Wraps: (3) :: innerone
  | innertwo :: new-style (outerthree
  | outerfour)
Wraps: (4) innerone
  | innertwo
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *secondary.withSecondaryError (3) *errutil.withNewMessage (4) *errbase.opaqueLeaf
== %#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)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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›
  |   |
  |   | (opaque error leaf)
  |   | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
  | Error types: (1) *errbase.opaqueLeaf
Wraps: (3) :: ‹innerone›
  | ‹innertwo› :: new-style (‹outerthree›
  | ‹outerfour›)
Wraps: (4) ‹innerone›
  | ‹innertwo›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *secondary.withSecondaryError (3) *errutil.withNewMessage (4) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
<path>:<lineno>: :: ×
(1)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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) ×
  |   | ×
  |   |
  |   | (opaque error leaf)
  |   | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
  | Error types: (1) *errbase.opaqueLeaf
Wraps: (3) :: ×
  | × :: new-style (×
  | ×)
Wraps: (4) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *secondary.withSecondaryError (3) *errutil.withNewMessage (4) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
*errutil.withNewMessage: :: ×
*secondary.withSecondaryError
<path>:<lineno>: *withstack.withStack (top exception)
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
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.errFmt: :: ×\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
fmt innerone innertwo
nofmt outerthree outerfour
opaque

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

require (?s)outerthree.*outerfour.*innerone.*innertwo
----
&errbase.opaqueWrapper{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix:  "outerthree\nouterfour",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.werrNoFmt",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.werrNoFmt", Extension:""},
        ReportablePayload: nil,
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
=====
===== non-redactable formats
=====
== %#v
&errbase.opaqueWrapper{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix:  "outerthree\nouterfour",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.werrNoFmt",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.werrNoFmt", Extension:""},
        ReportablePayload: nil,
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
== 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
  |
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrNoFmt
Wraps: (2) innerone
  | innertwo
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
== %#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›
  |
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrNoFmt
Wraps: (2) ‹innerone›
  | ‹innertwo›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
×: ×
(1) ×
  | ×
  |
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrNoFmt
Wraps: (2) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
*fmttests.werrNoFmt
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.werrNoFmt (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errFmt"
Title: "×: ×"
(NO STACKTRACE)

run
fmt innerone innertwo
os-link outerthree outerfour
opaque

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

require (?s)innerone.*innertwo
----
&os.LinkError{
    Op:  "link",
    Old: "/path/to/file",
    New: "/path/to/newfile",
    Err: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
}
=====
===== non-redactable formats
=====
== %#v
&os.LinkError{Op:"link", Old:"/path/to/file", New:"/path/to/newfile", Err:&errbase.opaqueLeaf{
    msg:     "innerone\ninnertwo",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
        ReportablePayload: nil,
        FullDetails:       (*types.Any)(nil),
    },
}}
== 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: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
}
== %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
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *os.LinkError (2) *errbase.opaqueLeaf
=====
===== 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›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *os.LinkError (2) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
link × ×: ×
(1) link × ×
Wraps: (2) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *os.LinkError (2) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
*os.LinkError
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
os/*os.LinkError (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errFmt"
Title: "link × ×: ×"
(NO STACKTRACE)

run
fmt innerone innertwo
os-netop outerthree outerfour
opaque

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

require (?s)innerone.*innertwo
----
&errbase.opaqueWrapper{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix:  "send tcp unixhello",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "net/*net.OpError",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"net/*net.OpError", Extension:""},
        ReportablePayload: nil,
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
=====
===== non-redactable formats
=====
== %#v
&errbase.opaqueWrapper{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix:  "send tcp unixhello",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "net/*net.OpError",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"net/*net.OpError", Extension:""},
        ReportablePayload: nil,
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
== 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
send tcp unixhello: innerone
(1) send tcp unixhello
  |
  | (opaque error wrapper)
  | type name: net/*net.OpError
Wraps: (2) innerone
  | innertwo
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
== %#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
‹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
‹send tcp unixhello›: ‹innerone›
(1) ‹send tcp unixhello›
  |
  | (opaque error wrapper)
  | type name: net/*net.OpError
Wraps: (2) ‹innerone›
  | ‹innertwo›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
×: ×
(1) ×
  |
  | (opaque error wrapper)
  | type name: net/*net.OpError
Wraps: (2) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
*net.OpError
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
net/*net.OpError (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errFmt"
Title: "×: ×"
(NO STACKTRACE)

run
fmt innerone innertwo
os-path outerthree outerfour
opaque

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

require (?s)innerone.*innertwo
----
&fs.PathError{
    Op:   "link",
    Path: "/path/to/file",
    Err:  &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
}
=====
===== non-redactable formats
=====
== %#v
&fs.PathError{Op:"link", Path:"/path/to/file", Err:&errbase.opaqueLeaf{
    msg:     "innerone\ninnertwo",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
        ReportablePayload: nil,
        FullDetails:       (*types.Any)(nil),
    },
}}
== 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:  &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
}
== %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
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *fs.PathError (2) *errbase.opaqueLeaf
=====
===== 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›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *fs.PathError (2) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
link ×: ×
(1) link ×
Wraps: (2) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *fs.PathError (2) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
*fs.PathError
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
io/fs/*fs.PathError (os/*os.PathError::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errFmt"
Title: "link ×: ×"
(NO STACKTRACE)

run
fmt innerone innertwo
os-syscall outerthree outerfour
opaque

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

require (?s)innerone.*innertwo
----
&os.SyscallError{
    Syscall: "open",
    Err:     &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
}
=====
===== non-redactable formats
=====
== %#v
&os.SyscallError{Syscall:"open", Err:&errbase.opaqueLeaf{
    msg:     "innerone\ninnertwo",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
        ReportablePayload: nil,
        FullDetails:       (*types.Any)(nil),
    },
}}
== 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:     &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
}
== %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
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *os.SyscallError (2) *errbase.opaqueLeaf
=====
===== 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›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *os.SyscallError (2) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
open: ×
(1) open
Wraps: (2) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *os.SyscallError (2) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
*os.SyscallError
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
os/*os.SyscallError (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errFmt"
Title: "open: ×"
(NO STACKTRACE)

run
fmt innerone innertwo
pkgmsg outerthree outerfour
opaque

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.*innerone.*innertwo
----
&errors.withMessage{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    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
(1) innerone
  | innertwo
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueLeaf
outerthree
outerfour
== %#v via Formattable() (IRREGULAR: not same as %#v)
&errors.withMessage{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    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
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errors.withMessage (2) *errbase.opaqueLeaf
=====
===== 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›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errors.withMessage (2) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
×: ×
(1) ×
×
Wraps: (2) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errors.withMessage (2) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
*errors.withMessage
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
github.com/pkg/errors/*errors.withMessage (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errFmt"
Title: "×: ×"
(NO STACKTRACE)

run
fmt innerone innertwo
pkgstack outerthree outerfour
opaque

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)innerone.*innertwo
----
&errbase.opaqueWrapper{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix:  "",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/pkg/errors/*errors.withStack",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/pkg/errors/*errors.withStack", Extension:""},
        ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
=====
===== non-redactable formats
=====
== %#v
&errbase.opaqueWrapper{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix:  "",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/pkg/errors/*errors.withStack",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/pkg/errors/*errors.withStack", Extension:""},
        ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
== Error()
innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
innerone
(1)
  | (opaque error wrapper)
  | type name: github.com/pkg/errors/*errors.withStack
  | reportable 0:
  |
  | 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
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
== %#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)
  | (opaque error wrapper)
  | type name: github.com/pkg/errors/*errors.withStack
  | reportable 0:
  |
  | 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›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
<path>:<lineno>: ×
(1)
  | (opaque error wrapper)
  | type name: github.com/pkg/errors/*errors.withStack
  | reportable 0:
  |
  | 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) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
<path>:<lineno>: *errors.withStack (top exception)
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
github.com/pkg/errors/*errors.withStack (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "<path>:<lineno> ...funcNN...
Title: "*fmttests.errFmt: ×\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
fmt innerone innertwo
safedetails outerthree outerfour
opaque

require (?s)innerone.*innertwo
----
&safedetails.withSafeDetails{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    safeDetails: {"safe ×\n×"},
}
=====
===== non-redactable formats
=====
== %#v
&safedetails.withSafeDetails{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    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
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *safedetails.withSafeDetails (2) *errbase.opaqueLeaf
== %#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›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *safedetails.withSafeDetails (2) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
×
(1) safe ×
  | ×
Wraps: (2) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *safedetails.withSafeDetails (2) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
*safedetails.withSafeDetails: safe ×
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
github.com/cockroachdb/errors/safedetails/*safedetails.withSafeDetails (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errFmt"
Title: "×"
(NO STACKTRACE)

run
fmt innerone innertwo
safefmt outerthree outerfour
opaque

require (?s)outerthree.*outerfour.*innerone.*innertwo
----
&errbase.opaqueWrapper{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix:  "safe outerthree\nouterfour",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.werrSafeFormat",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.werrSafeFormat", Extension:""},
        ReportablePayload: nil,
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
=====
===== non-redactable formats
=====
== %#v
&errbase.opaqueWrapper{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix:  "safe outerthree\nouterfour",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.werrSafeFormat",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.werrSafeFormat", Extension:""},
        ReportablePayload: nil,
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
== 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
  |
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrSafeFormat
Wraps: (2) innerone
  | innertwo
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
== %#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›
  |
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrSafeFormat
Wraps: (2) ‹innerone›
  | ‹innertwo›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
×: ×
(1) ×
  | ×
  |
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrSafeFormat
Wraps: (2) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
*fmttests.werrSafeFormat
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
github.com/cockroachdb/errors/fmttests/*fmttests.werrSafeFormat (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errFmt"
Title: "×: ×"
(NO STACKTRACE)

run
fmt innerone innertwo
secondary outerthree outerfour
opaque

require (?s)innerone.*innertwo
----
&secondary.withSecondaryError{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    secondaryError: &errbase.opaqueWrapper{
        cause:   &errutil.leafError{msg:"outerthree\nouterfour"},
        prefix:  "",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/withstack/*withstack.withStack",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/withstack/*withstack.withStack", Extension:""},
            ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
            FullDetails:       (*types.Any)(nil),
        },
        messageType: 0,
    },
}
=====
===== non-redactable formats
=====
== %#v
&secondary.withSecondaryError{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    secondaryError: &errbase.opaqueWrapper{
        cause:   &errutil.leafError{msg:"outerthree\nouterfour"},
        prefix:  "",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/withstack/*withstack.withStack",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/withstack/*withstack.withStack", Extension:""},
            ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
            FullDetails:       (*types.Any)(nil),
        },
        messageType: 0,
    },
}
== 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)
  |   | (opaque error wrapper)
  |   | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  |   | reportable 0:
  |   |
  |   | 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) *errbase.opaqueWrapper (2) *errutil.leafError
Wraps: (2) innerone
  | innertwo
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *secondary.withSecondaryError (2) *errbase.opaqueLeaf
== %#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)
  |   | (opaque error wrapper)
  |   | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  |   | reportable 0:
  |   |
  |   | 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) *errbase.opaqueWrapper (2) *errutil.leafError
Wraps: (2) ‹innerone›
  | ‹innertwo›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *secondary.withSecondaryError (2) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
×
(1) secondary error attachment
  | outerthree
  | (1)
  |   | (opaque error wrapper)
  |   | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  |   | reportable 0:
  |   |
  |   | 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) *errbase.opaqueWrapper (2) *errutil.leafError
Wraps: (2) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *secondary.withSecondaryError (2) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
*secondary.withSecondaryError: details for github.com/cockroachdb/errors/withstack/*withstack.withStack:::
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
github.com/cockroachdb/errors/secondary/*secondary.withSecondaryError (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errFmt"
Title: "×"
(NO STACKTRACE)

run
fmt innerone innertwo
stack outerthree outerfour
opaque

require (?s)innerone.*innertwo
----
&errbase.opaqueWrapper{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix:  "",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/withstack/*withstack.withStack",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/withstack/*withstack.withStack", Extension:""},
        ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
=====
===== non-redactable formats
=====
== %#v
&errbase.opaqueWrapper{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    prefix:  "",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/withstack/*withstack.withStack",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/withstack/*withstack.withStack", Extension:""},
        ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
== Error()
innerone
innertwo
== %v = Error(), good
== %s = Error(), good
== %q = quoted Error(), good
== %x = hex Error(), good
== %X = HEX Error(), good
== %+v
innerone
(1)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
== %#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)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
<path>:<lineno>: ×
(1)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
<path>:<lineno>: *withstack.withStack (top exception)
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
github.com/cockroachdb/errors/withstack/*withstack.withStack (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "<path>:<lineno> ...funcNN...
Title: "*fmttests.errFmt: ×\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
fmt innerone innertwo
tags outerthree outerfour
opaque

require (?s)innerone.*innertwo
----
&contexttags.withContext{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    tags: &logtags.Buffer{
        tags: {
            {
                key:   "k",
                value: "123",
            },
            {
                key:   "safe",
                value: "456",
            },
        },
        prealloc: {
            {
                key:   "k",
                value: "123",
            },
            {
                key:   "safe",
                value: "456",
            },
            {},
            {},
        },
    },
    redactedTags: {"k×", "safe=456"},
}
=====
===== non-redactable formats
=====
== %#v
&contexttags.withContext{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    tags: &logtags.Buffer{
        tags: {
            {
                key:   "k",
                value: "123",
            },
            {
                key:   "safe",
                value: "456",
            },
        },
        prealloc: {
            {
                key:   "k",
                value: "123",
            },
            {
                key:   "safe",
                value: "456",
            },
            {},
            {},
        },
    },
    redactedTags: {"k×", "safe=456"},
}
== 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
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *contexttags.withContext (2) *errbase.opaqueLeaf
== %#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›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *contexttags.withContext (2) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
×
(1) tags: [k×,safe=×]
Wraps: (2) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *contexttags.withContext (2) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
*contexttags.withContext: k×
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
github.com/cockroachdb/errors/contexttags/*contexttags.withContext (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errFmt"
Title: "×"
(NO STACKTRACE)

run
fmt innerone innertwo
telemetry outerthree outerfour
opaque

require (?s)innerone.*innertwo
----
&telemetrykeys.withTelemetry{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    keys: {"somekey", "outerthree\nouterfour"},
}
=====
===== non-redactable formats
=====
== %#v
&telemetrykeys.withTelemetry{
    cause: &errbase.opaqueLeaf{
        msg:     "innerone\ninnertwo",
        details: errorspb.EncodedErrorDetails{
            OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
            ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
            ReportablePayload: nil,
            FullDetails:       (*types.Any)(nil),
        },
    },
    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
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *telemetrykeys.withTelemetry (2) *errbase.opaqueLeaf
== %#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›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *telemetrykeys.withTelemetry (2) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
×
(1) keys: [somekey outerthree
  | outerfour]
Wraps: (2) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *telemetrykeys.withTelemetry (2) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
*telemetrykeys.withTelemetry: somekey
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
github.com/cockroachdb/errors/telemetrykeys/*telemetrykeys.withTelemetry (*::)
== Exception 1 (Module: "error domain: <none>")
Type: "*fmttests.errFmt"
Title: "×"
(NO STACKTRACE)

run
fmt innerone innertwo
wrapf outerthree outerfour
opaque

require (?s)outerthree.*outerfour.*innerone.*innertwo
----
&errbase.opaqueWrapper{
    cause: &errutil.withPrefix{
        cause: &errbase.opaqueLeaf{
            msg:     "innerone\ninnertwo",
            details: errorspb.EncodedErrorDetails{
                OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
                ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
                ReportablePayload: nil,
                FullDetails:       (*types.Any)(nil),
            },
        },
        prefix: "new-stylew ‹outerthree›\n‹outerfour›",
    },
    prefix:  "",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/withstack/*withstack.withStack",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/withstack/*withstack.withStack", Extension:""},
        ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
=====
===== non-redactable formats
=====
== %#v
&errbase.opaqueWrapper{
    cause: &errutil.withPrefix{
        cause: &errbase.opaqueLeaf{
            msg:     "innerone\ninnertwo",
            details: errorspb.EncodedErrorDetails{
                OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
                ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
                ReportablePayload: nil,
                FullDetails:       (*types.Any)(nil),
            },
        },
        prefix: "new-stylew ‹outerthree›\n‹outerfour›",
    },
    prefix:  "",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/withstack/*withstack.withStack",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/withstack/*withstack.withStack", Extension:""},
        ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
== 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)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errutil.withPrefix (3) *errbase.opaqueLeaf
== %#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)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errutil.withPrefix (3) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
<path>:<lineno>: new-stylew ×: ×
(1)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *errutil.withPrefix (3) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
*errutil.withPrefix: new-stylew ×
<path>:<lineno>: *withstack.withStack (top exception)
== Extra "error types"
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
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.errFmt: 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
fmt innerone innertwo
wrapf-attached outerthree outerfour
opaque

require (?s)outerthree.*outerfour.*innerone.*innertwo
----
&errbase.opaqueWrapper{
    cause: &secondary.withSecondaryError{
        cause: &errutil.withPrefix{
            cause: &errbase.opaqueLeaf{
                msg:     "innerone\ninnertwo",
                details: errorspb.EncodedErrorDetails{
                    OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
                    ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
                    ReportablePayload: nil,
                    FullDetails:       (*types.Any)(nil),
                },
            },
            prefix: "new-style ‹outerthree›\n‹outerfour› (payload)",
        },
        secondaryError: &errbase.opaqueWrapper{
            cause:   &errutil.leafError{msg:"payload"},
            prefix:  "",
            details: errorspb.EncodedErrorDetails{
                OriginalTypeName:  "github.com/cockroachdb/errors/withstack/*withstack.withStack",
                ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/withstack/*withstack.withStack", Extension:""},
                ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
                FullDetails:       (*types.Any)(nil),
            },
            messageType: 0,
        },
    },
    prefix:  "",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/withstack/*withstack.withStack",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/withstack/*withstack.withStack", Extension:""},
        ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
=====
===== non-redactable formats
=====
== %#v
&errbase.opaqueWrapper{
    cause: &secondary.withSecondaryError{
        cause: &errutil.withPrefix{
            cause: &errbase.opaqueLeaf{
                msg:     "innerone\ninnertwo",
                details: errorspb.EncodedErrorDetails{
                    OriginalTypeName:  "github.com/cockroachdb/errors/fmttests/*fmttests.errFmt",
                    ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/fmttests/*fmttests.errFmt", Extension:""},
                    ReportablePayload: nil,
                    FullDetails:       (*types.Any)(nil),
                },
            },
            prefix: "new-style ‹outerthree›\n‹outerfour› (payload)",
        },
        secondaryError: &errbase.opaqueWrapper{
            cause:   &errutil.leafError{msg:"payload"},
            prefix:  "",
            details: errorspb.EncodedErrorDetails{
                OriginalTypeName:  "github.com/cockroachdb/errors/withstack/*withstack.withStack",
                ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/withstack/*withstack.withStack", Extension:""},
                ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
                FullDetails:       (*types.Any)(nil),
            },
            messageType: 0,
        },
    },
    prefix:  "",
    details: errorspb.EncodedErrorDetails{
        OriginalTypeName:  "github.com/cockroachdb/errors/withstack/*withstack.withStack",
        ErrorTypeMark:     errorspb.ErrorTypeMark{FamilyName:"github.com/cockroachdb/errors/withstack/*withstack.withStack", Extension:""},
        ReportablePayload: {"\ngithub.com/cockroachdb/errors/fmttests.glob...funcNN...\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2.1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective.func1\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirective\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runDirectiveOrSubTest\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.runTestInternal\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.RunTest\n\<path>:<lineno>\ngithub.com/cockroachdb/errors/fmttests.TestDatadriven.func2\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk\n\<path>:<lineno>\ngithub.com/cockroachdb/datadriven.Walk.func1\n\<path>:<lineno>\ntesting.tRunner\n\<path>:<lineno>\nruntime.goexit\n\<path>:<lineno>"},
        FullDetails:       (*types.Any)(nil),
    },
    messageType: 0,
}
== 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)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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)
  |   | (opaque error wrapper)
  |   | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  |   | reportable 0:
  |   |
  |   | 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) *errbase.opaqueWrapper (2) *errutil.leafError
Wraps: (3) new-style outerthree
  | outerfour (payload)
Wraps: (4) innerone
  | innertwo
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *secondary.withSecondaryError (3) *errutil.withPrefix (4) *errbase.opaqueLeaf
== %#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)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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)
  |   | (opaque error wrapper)
  |   | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  |   | reportable 0:
  |   |
  |   | 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) *errbase.opaqueWrapper (2) *errutil.leafError
Wraps: (3) new-style ‹outerthree›
  | ‹outerfour› (payload)
Wraps: (4) ‹innerone›
  | ‹innertwo›
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *secondary.withSecondaryError (3) *errutil.withPrefix (4) *errbase.opaqueLeaf
=====
===== Sentry reporting
=====
== Message payload
<path>:<lineno>: new-style ×: ×
(1)
  | (opaque error wrapper)
  | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  | reportable 0:
  |
  | 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)
  |   | (opaque error wrapper)
  |   | type name: github.com/cockroachdb/errors/withstack/*withstack.withStack
  |   | reportable 0:
  |   |
  |   | 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) *errbase.opaqueWrapper (2) *errutil.leafError
Wraps: (3) new-style ×
  | × (payload)
Wraps: (4) ×
  | ×
  |
  | (opaque error leaf)
  | type name: github.com/cockroachdb/errors/fmttests/*fmttests.errFmt
Error types: (1) *errbase.opaqueWrapper (2) *secondary.withSecondaryError (3) *errutil.withPrefix (4) *errbase.opaqueLeaf
-- report composition:
*fmttests.errFmt
*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.errFmt (*::)
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.errFmt: 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...
