12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- package graphdriver // import "github.com/docker/docker/daemon/graphdriver"
- import (
- "encoding/json"
- "testing"
- "github.com/docker/docker/pkg/idtools"
- "gotest.tools/v3/assert"
- )
- func TestGraphDriverInitRequestIsCompatible(t *testing.T) {
- // Graph driver plugins may unmarshal into this version of the init
- // request struct. Verify that the serialization of
- // graphDriverInitRequest is fully backwards compatible.
- type graphDriverInitRequestV1 struct {
- Home string
- Opts []string `json:"Opts"`
- UIDMaps []idtools.IDMap `json:"UIDMaps"`
- GIDMaps []idtools.IDMap `json:"GIDMaps"`
- }
- args := graphDriverInitRequest{
- Home: "homedir",
- Opts: []string{"option1", "option2"},
- IdentityMapping: idtools.IdentityMapping{
- UIDMaps: []idtools.IDMap{{ContainerID: 123, HostID: 456, Size: 42}},
- GIDMaps: []idtools.IDMap{{ContainerID: 789, HostID: 1011, Size: 16}},
- },
- }
- v, err := json.Marshal(&args)
- assert.NilError(t, err)
- var got graphDriverInitRequestV1
- assert.NilError(t, json.Unmarshal(v, &got))
- want := graphDriverInitRequestV1{
- Home: args.Home,
- Opts: args.Opts,
- UIDMaps: args.UIDMaps,
- GIDMaps: args.GIDMaps,
- }
- assert.DeepEqual(t, got, want)
- }
|