-
Notifications
You must be signed in to change notification settings - Fork 18k
proposal: testing: add additional data to testing.T.Context #70480
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Related Issues
(Emoji vote if this was helpful or unhelpful; more detailed feedback welcome in this discussion.) |
Now that |
The presence or absence of a deadline isn't specified in the The main use cases I'd see for setting the deadline:
I suppose it's true that one could always just put in ctx = t.Context()
if d, ok := t.Deadline(); ok {
var cancel context.CancelFunc
ctx, cancel := context.WithDeadline(ctx, d)
defer cancel()
} but aside from being simply awkward, it's also not quite the same behavior because of the need to deal with the |
Proposal Details
The accepted proposal #36532 added a Context method to
testing.T
, which is great, but I can think of two straightforward ways to improve its usefulness further:T.Deadline()
as the deadline for the context. There are (hopefully rare) cases where something needs to propagate deadline information to something that isn't go, e.g. a subprocess, where simple cancelation may not be sufficient. Even in cases where the final consumer of the context is go, it's helpful for e.g. logging to be able to distinguish between a context cancelled due to a timeout vs. cancelled for some other reason. This should be as simple as swapping outcontext.WithCancel
forcontext.WithDeadline
where appropriate.trace.Task
named for the test. When running a trace or benchmark with-trace
, it can be handy to be able to track back regions to specific tests. This, too, is fairly low-cost given that thetesting
package already depends onruntime/trace
.The text was updated successfully, but these errors were encountered: