github.com/kaisenlinux/docker.io@v0.0.0-20230510090727-ea55db55fac7/engine/daemon/config/config_common_unix_test.go (about)

     1  //go:build !windows
     2  // +build !windows
     3  
     4  package config // import "github.com/docker/docker/daemon/config"
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/docker/docker/api/types"
    10  )
    11  
    12  func TestCommonUnixValidateConfigurationErrors(t *testing.T) {
    13  	testCases := []struct {
    14  		config *Config
    15  	}{
    16  		// Can't override the stock runtime
    17  		{
    18  			config: &Config{
    19  				CommonUnixConfig: CommonUnixConfig{
    20  					Runtimes: map[string]types.Runtime{
    21  						StockRuntimeName: {},
    22  					},
    23  				},
    24  			},
    25  		},
    26  		// Default runtime should be present in runtimes
    27  		{
    28  			config: &Config{
    29  				CommonUnixConfig: CommonUnixConfig{
    30  					Runtimes: map[string]types.Runtime{
    31  						"foo": {},
    32  					},
    33  					DefaultRuntime: "bar",
    34  				},
    35  			},
    36  		},
    37  	}
    38  	for _, tc := range testCases {
    39  		err := Validate(tc.config)
    40  		if err == nil {
    41  			t.Fatalf("expected error, got nil for config %v", tc.config)
    42  		}
    43  	}
    44  }
    45  
    46  func TestCommonUnixGetInitPath(t *testing.T) {
    47  	testCases := []struct {
    48  		config           *Config
    49  		expectedInitPath string
    50  	}{
    51  		{
    52  			config: &Config{
    53  				InitPath: "some-init-path",
    54  			},
    55  			expectedInitPath: "some-init-path",
    56  		},
    57  		{
    58  			config: &Config{
    59  				CommonUnixConfig: CommonUnixConfig{
    60  					DefaultInitBinary: "foo-init-bin",
    61  				},
    62  			},
    63  			expectedInitPath: "foo-init-bin",
    64  		},
    65  		{
    66  			config: &Config{
    67  				InitPath: "init-path-A",
    68  				CommonUnixConfig: CommonUnixConfig{
    69  					DefaultInitBinary: "init-path-B",
    70  				},
    71  			},
    72  			expectedInitPath: "init-path-A",
    73  		},
    74  		{
    75  			config:           &Config{},
    76  			expectedInitPath: "docker-init",
    77  		},
    78  	}
    79  	for _, tc := range testCases {
    80  		initPath := tc.config.GetInitPath()
    81  		if initPath != tc.expectedInitPath {
    82  			t.Fatalf("expected initPath to be %v, got %v", tc.expectedInitPath, initPath)
    83  		}
    84  	}
    85  }