[short] skip

go test -timeout=0 -run=TestNoDeadline
go test -timeout=1m -run=TestDeadlineWithinMinute
go test -timeout=1m -run=TestSubtestDeadlineWithinMinute

-- deadline_test.go --
package testing_test

import (
	"testing"
	"time"
)

func TestNoDeadline(t *testing.T) {
	d, ok := t.Deadline()
	if ok || !d.IsZero() {
		t.Fatalf("t.Deadline() = %v, %v; want 0, false", d, ok)
	}
}

func TestDeadlineWithinMinute(t *testing.T) {
	now := time.Now()
	d, ok := t.Deadline()
	if !ok || d.IsZero() {
		t.Fatalf("t.Deadline() = %v, %v; want nonzero deadline", d, ok)
	}
	if !d.After(now) {
		t.Fatalf("t.Deadline() = %v; want after start of test (%v)", d, now)
	}
	if d.Sub(now) > time.Minute {
		t.Fatalf("t.Deadline() = %v; want within one minute of start of test (%v)", d, now)
	}
}

func TestSubtestDeadlineWithinMinute(t *testing.T) {
	t.Run("sub", func(t *testing.T) {
		now := time.Now()
		d, ok := t.Deadline()
		if !ok || d.IsZero() {
			t.Fatalf("t.Deadline() = %v, %v; want nonzero deadline", d, ok)
		}
		if !d.After(now) {
			t.Fatalf("t.Deadline() = %v; want after start of test (%v)", d, now)
		}
		if d.Sub(now) > time.Minute {
			t.Fatalf("t.Deadline() = %v; want within one minute of start of test (%v)", d, now)
		}
	})
}
