File: rm.go

package info (click to toggle)
docker-buildx 0.13.1%2Bds1-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,356 kB
  • sloc: sh: 299; makefile: 87
file content (60 lines) | stat: -rw-r--r-- 1,587 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package tests

import (
	"strings"
	"testing"

	"github.com/moby/buildkit/util/testutil/integration"
	"github.com/stretchr/testify/require"
)

func rmCmd(sb integration.Sandbox, opts ...cmdOpt) (string, error) {
	opts = append([]cmdOpt{withArgs("rm")}, opts...)
	cmd := buildxCmd(sb, opts...)
	out, err := cmd.CombinedOutput()
	return string(out), err
}

var rmTests = []func(t *testing.T, sb integration.Sandbox){
	testRm,
	testRmMulti,
}

func testRm(t *testing.T, sb integration.Sandbox) {
	if sb.Name() != "docker-container" {
		t.Skip("only testing for docker-container driver")
	}

	out, err := rmCmd(sb, withArgs("default"))
	require.Error(t, err, out) // can't remove a docker builder

	out, err = createCmd(sb, withArgs("--driver", "docker-container"))
	require.NoError(t, err, out)
	builderName := strings.TrimSpace(out)

	out, err = inspectCmd(sb, withArgs(builderName, "--bootstrap"))
	require.NoError(t, err, out)

	out, err = rmCmd(sb, withArgs(builderName))
	require.NoError(t, err, out)
}

func testRmMulti(t *testing.T, sb integration.Sandbox) {
	if sb.Name() != "docker-container" {
		t.Skip("only testing for docker-container driver")
	}

	var builderNames []string
	for i := 0; i < 3; i++ {
		out, err := createCmd(sb, withArgs("--driver", "docker-container"))
		require.NoError(t, err, out)
		builderName := strings.TrimSpace(out)

		out, err = inspectCmd(sb, withArgs(builderName, "--bootstrap"))
		require.NoError(t, err, out)
		builderNames = append(builderNames, builderName)
	}

	out, err := rmCmd(sb, withArgs(builderNames...))
	require.NoError(t, err, out)
}