diff --git a/api/proto_test.go b/api/proto_test.go new file mode 100644 index 0000000000000..3c9d09ccb5e27 --- /dev/null +++ b/api/proto_test.go @@ -0,0 +1,41 @@ +package api + +import ( + "flag" + "fmt" + "os" + "testing" + + moby_buildkit_v1_types "github.com/moby/buildkit/api/types" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +var record = flag.Bool("record", false, "record actual values as fixtures") + +func TestProto(t *testing.T) { + r := &moby_buildkit_v1_types.WorkerRecord{ + ID: "hello", + Labels: map[string]string{ + "a": "foo", + "b": "bar", + "c": "baz", + }, + } + b, err := r.Marshal() + require.NoError(t, err) + + assertProto(t, b, "WorkerRecord") +} + +func assertProto(tb testing.TB, actual []byte, name string) { + path := fmt.Sprintf("testdata/%s.bin", name) + if *record { + err := os.WriteFile(path, actual, 0600) + require.NoError(tb, err) + return + } + expected, err := os.ReadFile(path) + require.NoError(tb, err) + assert.Equal(tb, expected, actual) +} diff --git a/api/testdata/WorkerRecord.bin b/api/testdata/WorkerRecord.bin new file mode 100644 index 0000000000000..f1fa2fbd2a2e5 --- /dev/null +++ b/api/testdata/WorkerRecord.bin @@ -0,0 +1,5 @@ + +hello +cbaz +bbar +afoo \ No newline at end of file