From 3ee8799a0bb3e7ba3628b83832fb14462241643d Mon Sep 17 00:00:00 2001 From: Joe Wreschnig Date: Sat, 13 Jun 2020 17:45:28 +0200 Subject: [PATCH] Add a benchmark for precompleted context creation --- context_test.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/context_test.go b/context_test.go index a7b30a4..0fa10d7 100644 --- a/context_test.go +++ b/context_test.go @@ -64,7 +64,7 @@ func TestCancelAfterSignal(t *testing.T) { assert.Equal(t, Error{syscall.SIGUSR2}, ctx.Err()) } -func TestImmediateCompletion(t *testing.T) { +func TestPrecompleted(t *testing.T) { parent, cancel := context.WithCancel(context.Background()) cancel() <-parent.Done() @@ -120,3 +120,14 @@ func BenchmarkCanceledAsChild(b *testing.B) { <-children[i].Done() } } + +func BenchmarkPrecompleted(b *testing.B) { + parent, cancel := context.WithCancel(context.Background()) + cancel() + <-parent.Done() + b.ResetTimer() + for i := 0; i < b.N; i++ { + ctx := UntilSignal(parent, syscall.SIGUSR2) + <-ctx.Done() + } +} -- 2.20.1