diff --git a/ping.go b/ping.go index 14d73c6..5e0f20d 100644 --- a/ping.go +++ b/ping.go @@ -498,6 +498,7 @@ func (p *Pinger) run(ctx context.Context, conn packetConn) error { select { case <-ctx.Done(): p.Stop() + return ctx.Err() case <-p.done: } return nil diff --git a/ping_test.go b/ping_test.go index 3e96611..c9a3bc2 100644 --- a/ping_test.go +++ b/ping_test.go @@ -801,7 +801,7 @@ func TestRunWithTimeoutContext(t *testing.T) { ctx, cancel := context.WithTimeout(context.Background(), 100*time.Millisecond) defer cancel() err = pinger.run(ctx, conn) - AssertTrue(t, err == nil) + AssertTrue(t, errors.Is(err, context.DeadlineExceeded)) elapsedTime := time.Since(start) AssertTrue(t, elapsedTime < 10*time.Second)