MCPcopy Create free account
hub / github.com/containers/image / TestLoadAndMergeConfig

Function TestLoadAndMergeConfig

docker/registries_d_test.go:130–224  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

128}
129
130func TestLoadAndMergeConfig(t *testing.T) {
131 tmpDir := t.TempDir()
132
133 // No registries.d exists
134 config, err := loadAndMergeConfig(filepath.Join(tmpDir, "thisdoesnotexist"))
135 require.NoError(t, err)
136 assert.Equal(t, &registryConfiguration{Docker: map[string]registryNamespace{}}, config)
137
138 // Empty registries.d directory
139 emptyDir := filepath.Join(tmpDir, "empty")
140 err = os.Mkdir(emptyDir, 0755)
141 require.NoError(t, err)
142 config, err = loadAndMergeConfig(emptyDir)
143 require.NoError(t, err)
144 assert.Equal(t, &registryConfiguration{Docker: map[string]registryNamespace{}}, config)
145
146 // Unreadable registries.d directory
147 unreadableDir := filepath.Join(tmpDir, "unreadable")
148 err = os.Mkdir(unreadableDir, 0000)
149 require.NoError(t, err)
150 _, err = loadAndMergeConfig(unreadableDir)
151 assert.Error(t, err)
152
153 // An unreadable file in a registries.d directory
154 unreadableFileDir := filepath.Join(tmpDir, "unreadableFile")
155 err = os.Mkdir(unreadableFileDir, 0755)
156 require.NoError(t, err)
157 err = os.WriteFile(filepath.Join(unreadableFileDir, "0.yaml"), []byte("{}"), 0644)
158 require.NoError(t, err)
159 err = os.WriteFile(filepath.Join(unreadableFileDir, "1.yaml"), nil, 0000)
160 require.NoError(t, err)
161 _, err = loadAndMergeConfig(unreadableFileDir)
162 assert.Error(t, err)
163
164 // Invalid YAML
165 invalidYAMLDir := filepath.Join(tmpDir, "invalidYAML")
166 err = os.Mkdir(invalidYAMLDir, 0755)
167 require.NoError(t, err)
168 err = os.WriteFile(filepath.Join(invalidYAMLDir, "0.yaml"), []byte("}"), 0644)
169 require.NoError(t, err)
170 _, err = loadAndMergeConfig(invalidYAMLDir)
171 assert.Error(t, err)
172
173 // Duplicate DefaultDocker
174 duplicateDefault := filepath.Join(tmpDir, "duplicateDefault")
175 err = os.Mkdir(duplicateDefault, 0755)
176 require.NoError(t, err)
177 err = os.WriteFile(filepath.Join(duplicateDefault, "0.yaml"),
178 []byte("default-docker:\n lookaside: file:////tmp/something"), 0644)
179 require.NoError(t, err)
180 err = os.WriteFile(filepath.Join(duplicateDefault, "1.yaml"),
181 []byte("default-docker:\n lookaside: file:////tmp/different"), 0644)
182 require.NoError(t, err)
183 _, err = loadAndMergeConfig(duplicateDefault)
184 assert.ErrorContains(t, err, "0.yaml")
185 assert.ErrorContains(t, err, "1.yaml")
186
187 // Duplicate DefaultDocker

Callers

nothing calls this directly

Calls 2

loadAndMergeConfigFunction · 0.85
ErrorMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…