mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-04 18:13:42 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			101 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			101 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package localstate
 | 
						|
 | 
						|
import (
 | 
						|
	"path/filepath"
 | 
						|
	"testing"
 | 
						|
 | 
						|
	"github.com/docker/buildx/util/confutil"
 | 
						|
	"github.com/stretchr/testify/require"
 | 
						|
)
 | 
						|
 | 
						|
func TestNew(t *testing.T) {
 | 
						|
	_ = newls(t)
 | 
						|
}
 | 
						|
 | 
						|
func TestReadRef(t *testing.T) {
 | 
						|
	l := newls(t)
 | 
						|
	r, err := l.ReadRef(testBuilderName, testNodeName, testStateRefID)
 | 
						|
	require.NoError(t, err)
 | 
						|
	require.Equal(t, testStateRef, *r)
 | 
						|
}
 | 
						|
 | 
						|
func TestReadGroup(t *testing.T) {
 | 
						|
	l := newls(t)
 | 
						|
	g, err := l.ReadGroup(testStateGroupID)
 | 
						|
	require.NoError(t, err)
 | 
						|
	require.Equal(t, testStateGroup, *g)
 | 
						|
}
 | 
						|
 | 
						|
func TestRemoveBuilder(t *testing.T) {
 | 
						|
	l := newls(t)
 | 
						|
	require.NoError(t, l.RemoveBuilder(testBuilderName))
 | 
						|
}
 | 
						|
 | 
						|
func TestRemoveBuilderNode(t *testing.T) {
 | 
						|
	l := newls(t)
 | 
						|
	require.NoError(t, l.RemoveBuilderNode(testBuilderName, testNodeName))
 | 
						|
}
 | 
						|
 | 
						|
func newls(t *testing.T) *LocalState {
 | 
						|
	t.Helper()
 | 
						|
	tmpdir := t.TempDir()
 | 
						|
 | 
						|
	l, err := New(confutil.NewConfig(nil, confutil.WithDir(tmpdir)))
 | 
						|
	require.NoError(t, err)
 | 
						|
	require.DirExists(t, filepath.Join(tmpdir, refsDir))
 | 
						|
	require.Equal(t, tmpdir, l.cfg.Dir())
 | 
						|
 | 
						|
	require.NoError(t, l.SaveRef(testBuilderName, testNodeName, testStateRefID, testStateRef))
 | 
						|
 | 
						|
	require.NoError(t, l.SaveGroup(testStateGroupID, testStateGroup))
 | 
						|
	require.NoError(t, l.SaveRef(testBuilderName, testNodeName, testStateGroupRef1ID, testStateGroupRef1))
 | 
						|
	require.NoError(t, l.SaveRef(testBuilderName, testNodeName, testStateGroupRef2ID, testStateGroupRef2))
 | 
						|
	require.NoError(t, l.SaveRef(testBuilderName, testNodeName, testStateGroupRef3ID, testStateGroupRef3))
 | 
						|
 | 
						|
	return l
 | 
						|
}
 | 
						|
 | 
						|
var (
 | 
						|
	testBuilderName = "builder"
 | 
						|
	testNodeName    = "builder0"
 | 
						|
 | 
						|
	testStateRefID = "32n3ffqrxjw41ok5zxd2qhume"
 | 
						|
	testStateRef   = State{
 | 
						|
		Target:         "default",
 | 
						|
		LocalPath:      "/home/foo/github.com/docker/docker-bake-action",
 | 
						|
		DockerfilePath: "/home/foo/github.com/docker/docker-bake-action/dev.Dockerfile",
 | 
						|
	}
 | 
						|
 | 
						|
	testStateGroupID = "kvqs0sgly2rmitz84r25u9qd0"
 | 
						|
	testStateGroup   = StateGroup{
 | 
						|
		Definition: []byte(`{"group":{"default":{"targets":["pre-checkin"]},"pre-checkin":{"targets":["vendor-update","format","build"]}},"target":{"build":{"context":".","dockerfile":"dev.Dockerfile","target":"build-update","platforms":["linux/amd64"],"output":["."]},"format":{"context":".","dockerfile":"dev.Dockerfile","target":"format-update","platforms":["linux/amd64"],"output":["."]},"vendor-update":{"context":".","dockerfile":"dev.Dockerfile","target":"vendor-update","platforms":["linux/amd64"],"output":["."]}}}`),
 | 
						|
		Targets:    []string{"pre-checkin"},
 | 
						|
		Inputs:     []string{"*.platform=linux/amd64"},
 | 
						|
		Refs:       []string{"builder/builder0/hx2qf1w11qvz1x3k471c5i8xw", "builder/builder0/968zj0g03jmlx0s8qslnvh6rl", "builder/builder0/naf44f9i1710lf7y12lv5hb1z"},
 | 
						|
	}
 | 
						|
 | 
						|
	testStateGroupRef1ID = "hx2qf1w11qvz1x3k471c5i8xw"
 | 
						|
	testStateGroupRef1   = State{
 | 
						|
		Target:         "format",
 | 
						|
		LocalPath:      "/home/foo/github.com/docker/docker-bake-action",
 | 
						|
		DockerfilePath: "/home/foo/github.com/docker/docker-bake-action/dev.Dockerfile",
 | 
						|
		GroupRef:       "kvqs0sgly2rmitz84r25u9qd0",
 | 
						|
	}
 | 
						|
 | 
						|
	testStateGroupRef2ID = "968zj0g03jmlx0s8qslnvh6rl"
 | 
						|
	testStateGroupRef2   = State{
 | 
						|
		Target:         "build",
 | 
						|
		LocalPath:      "/home/foo/github.com/docker/docker-bake-action",
 | 
						|
		DockerfilePath: "/home/foo/github.com/docker/docker-bake-action/dev.Dockerfile",
 | 
						|
		GroupRef:       "kvqs0sgly2rmitz84r25u9qd0",
 | 
						|
	}
 | 
						|
 | 
						|
	testStateGroupRef3ID = "naf44f9i1710lf7y12lv5hb1z"
 | 
						|
	testStateGroupRef3   = State{
 | 
						|
		Target:         "vendor-update",
 | 
						|
		LocalPath:      "/home/foo/github.com/docker/docker-bake-action",
 | 
						|
		DockerfilePath: "/home/foo/github.com/docker/docker-bake-action/dev.Dockerfile",
 | 
						|
		GroupRef:       "kvqs0sgly2rmitz84r25u9qd0",
 | 
						|
	}
 | 
						|
)
 |