aboutsummaryrefslogtreecommitdiff
path: root/src/testing/synctest/context_example_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/testing/synctest/context_example_test.go')
-rw-r--r--src/testing/synctest/context_example_test.go78
1 files changed, 0 insertions, 78 deletions
diff --git a/src/testing/synctest/context_example_test.go b/src/testing/synctest/context_example_test.go
deleted file mode 100644
index 5f7205e50e..0000000000
--- a/src/testing/synctest/context_example_test.go
+++ /dev/null
@@ -1,78 +0,0 @@
-// Copyright 2025 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-//go:build goexperiment.synctest
-
-package synctest_test
-
-import (
- "context"
- "fmt"
- "testing/synctest"
- "time"
-)
-
-// This example demonstrates testing the context.AfterFunc function.
-//
-// AfterFunc registers a function to execute in a new goroutine
-// after a context is canceled.
-//
-// The test verifies that the function is not run before the context is canceled,
-// and is run after the context is canceled.
-func Example_contextAfterFunc() {
- synctest.Run(func() {
- // Create a context.Context which can be canceled.
- ctx, cancel := context.WithCancel(context.Background())
-
- // context.AfterFunc registers a function to be called
- // when a context is canceled.
- afterFuncCalled := false
- context.AfterFunc(ctx, func() {
- afterFuncCalled = true
- })
-
- // The context has not been canceled, so the AfterFunc is not called.
- synctest.Wait()
- fmt.Printf("before context is canceled: afterFuncCalled=%v\n", afterFuncCalled)
-
- // Cancel the context and wait for the AfterFunc to finish executing.
- // Verify that the AfterFunc ran.
- cancel()
- synctest.Wait()
- fmt.Printf("after context is canceled: afterFuncCalled=%v\n", afterFuncCalled)
-
- // Output:
- // before context is canceled: afterFuncCalled=false
- // after context is canceled: afterFuncCalled=true
- })
-}
-
-// This example demonstrates testing the context.WithTimeout function.
-//
-// WithTimeout creates a context which is canceled after a timeout.
-//
-// The test verifies that the context is not canceled before the timeout expires,
-// and is canceled after the timeout expires.
-func Example_contextWithTimeout() {
- synctest.Run(func() {
- // Create a context.Context which is canceled after a timeout.
- const timeout = 5 * time.Second
- ctx, cancel := context.WithTimeout(context.Background(), timeout)
- defer cancel()
-
- // Wait just less than the timeout.
- time.Sleep(timeout - time.Nanosecond)
- synctest.Wait()
- fmt.Printf("before timeout: ctx.Err() = %v\n", ctx.Err())
-
- // Wait the rest of the way until the timeout.
- time.Sleep(time.Nanosecond)
- synctest.Wait()
- fmt.Printf("after timeout: ctx.Err() = %v\n", ctx.Err())
-
- // Output:
- // before timeout: ctx.Err() = <nil>
- // after timeout: ctx.Err() = context deadline exceeded
- })
-}