MCPcopy Create free account
hub / github.com/containerd/nerdctl / TestNetworkWithDefaultNameAlreadyExists

Function TestNetworkWithDefaultNameAlreadyExists

pkg/netutil/netutil_test.go:307–368  ·  view source on GitHub ↗

Tests whether nerdctl skips the creation of the default network if a network bearing the default network name already exists in a non-nerdctl-managed network config file.

(t *testing.T)

Source from the content-addressed store, hash-verified

305// network bearing the default network name already exists in a
306// non-nerdctl-managed network config file.
307func TestNetworkWithDefaultNameAlreadyExists(t *testing.T) {
308 // We create a tempdir for the CNI conf path to ensure an empty env for this test.
309 cniConfTestDir := t.TempDir()
310 cniEnv := CNIEnv{
311 Path: t.TempDir(), // irrelevant for this test
312 NetconfPath: cniConfTestDir,
313 }
314
315 // Ensure no default network config is not present.
316 defaultNetConf, err := cniEnv.GetDefaultNetworkConfig()
317 assert.NilError(t, err)
318 assert.Assert(t, defaultNetConf == nil)
319
320 // Manually define and write a network config file.
321 values := map[string]string{
322 "network_name": DefaultNetworkName,
323 "subnet": "10.7.1.1/24",
324 "gateway": "10.7.1.1",
325 }
326 tpl, err := template.New("test").Parse(preExistingNetworkConfigTemplate)
327 assert.NilError(t, err)
328 buf := &bytes.Buffer{}
329 assert.NilError(t, tpl.ExecuteTemplate(buf, "test", values))
330
331 // Filename is irrelevant as long as it's not nerdctl's.
332 testConfFile := filepath.Join(cniConfTestDir, fmt.Sprintf("%s.conf", testutil.Identifier(t)))
333 err = filesystem.WriteFile(testConfFile, buf.Bytes(), 0600)
334 assert.NilError(t, err)
335
336 // Check network is detected.
337 netConfs, err := cniEnv.NetworkList()
338 assert.NilError(t, err)
339 assert.Assert(t, len(netConfs) > 0)
340
341 var listedDefaultNetConf *NetworkConfig
342 for _, netConf := range netConfs {
343 if netConf.Name == DefaultNetworkName {
344 listedDefaultNetConf = netConf
345 break
346 }
347 }
348 assert.Assert(t, listedDefaultNetConf != nil)
349
350 defaultNetConf, err = cniEnv.GetDefaultNetworkConfig()
351 assert.NilError(t, err)
352 assert.Assert(t, defaultNetConf != nil)
353 assert.Assert(t, defaultNetConf.File == testConfFile)
354
355 err = cniEnv.ensureDefaultNetworkConfig("")
356 assert.NilError(t, err)
357
358 netConfs, err = cniEnv.NetworkList()
359 assert.NilError(t, err)
360 defaultNamedNetworksFileDefinitions := []string{}
361 for _, netConf := range netConfs {
362 if netConf.Name == DefaultNetworkName {
363 defaultNamedNetworksFileDefinitions = append(defaultNamedNetworksFileDefinitions, netConf.File)
364 }

Callers

nothing calls this directly

Calls 8

NetworkListMethod · 0.95
IdentifierFunction · 0.92
WriteFileFunction · 0.92
AssertMethod · 0.80
TempDirMethod · 0.65
ParseMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…