mirror of
https://gitea.com/gitea/runner.git
synced 2026-11-04 06:25:32 +00:00
The test context is cancelled when the test ends, so anything still holding it stops instead of leaking into the next test. Uses inside `t.Cleanup`, `defer` and `go func` blocks are left alone, as the context is already cancelled there. Stacked on https://gitea.com/gitea/runner/pulls/1305. Assisted-by: Codet Co-authored-by: bircni <[email protected]> Reviewed-on: https://gitea.com/gitea/runner/pulls/1306 Reviewed-by: bircni <[email protected]>
27 lines
746 B
Go
27 lines
746 B
Go
// Copyright 2026 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package container
|
|
|
|
import (
|
|
"testing"
|
|
|
|
mobyclient "github.com/moby/moby/client"
|
|
)
|
|
|
|
// requireDocker skips the test unless a reachable docker daemon is available.
|
|
// GetDockerClient succeeds even without a running daemon (its ping is best-effort),
|
|
// so the daemon has to be pinged explicitly here to decide whether to skip.
|
|
func requireDocker(t *testing.T) {
|
|
t.Helper()
|
|
ctx := t.Context()
|
|
cli, err := GetDockerClient(ctx)
|
|
if err != nil {
|
|
t.Skipf("skipping: docker client unavailable: %v", err)
|
|
}
|
|
defer cli.Close()
|
|
if _, err := cli.Ping(ctx, mobyclient.PingOptions{}); err != nil {
|
|
t.Skipf("skipping: docker daemon unreachable: %v", err)
|
|
}
|
|
}
|