@@ -52,6 +52,26 @@ func TestAddRuntime(t *testing.T) {
5252 ` ,
5353 expectedError : nil ,
5454 },
55+ {
56+ description : "empty config, set as default runtime" ,
57+ setAsDefault : true ,
58+ expectedConfig : `
59+ version = 2
60+ [plugins]
61+ [plugins."io.containerd.grpc.v1.cri"]
62+ [plugins."io.containerd.grpc.v1.cri".containerd]
63+ default_runtime_name = "test"
64+ [plugins."io.containerd.grpc.v1.cri".containerd.runtimes]
65+ [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.test]
66+ privileged_without_host_devices = false
67+ runtime_engine = ""
68+ runtime_root = ""
69+ runtime_type = "io.containerd.runc.v2"
70+ [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.test.options]
71+ BinaryName = "/usr/bin/test"
72+ ` ,
73+ expectedError : nil ,
74+ },
5575 {
5676 description : "options from runc are imported" ,
5777 config : `
@@ -257,6 +277,75 @@ func TestAddRuntime(t *testing.T) {
257277 SystemdCgroup = true
258278 ` ,
259279 },
280+ {
281+ description : "runtime already exists in config, default runtime" ,
282+ setAsDefault : true ,
283+ config : `
284+ version = 2
285+ [plugins]
286+ [plugins."io.containerd.grpc.v1.cri"]
287+ [plugins."io.containerd.grpc.v1.cri".containerd]
288+ default_runtime_name = "test"
289+ [plugins."io.containerd.grpc.v1.cri".containerd.runtimes]
290+ [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.test]
291+ privileged_without_host_devices = false
292+ runtime_engine = ""
293+ runtime_root = ""
294+ runtime_type = "io.containerd.runc.v2"
295+ [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.test.options]
296+ BinaryName = "/usr/bin/test"
297+ ` ,
298+ expectedConfig : `
299+ version = 2
300+ [plugins]
301+ [plugins."io.containerd.grpc.v1.cri"]
302+ [plugins."io.containerd.grpc.v1.cri".containerd]
303+ default_runtime_name = "test"
304+ [plugins."io.containerd.grpc.v1.cri".containerd.runtimes]
305+ [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.test]
306+ privileged_without_host_devices = false
307+ runtime_engine = ""
308+ runtime_root = ""
309+ runtime_type = "io.containerd.runc.v2"
310+ [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.test.options]
311+ BinaryName = "/usr/bin/test"
312+ ` ,
313+ expectedError : nil ,
314+ },
315+ {
316+ description : "runtime already exists in config, not default runtime" ,
317+ setAsDefault : false ,
318+ config : `
319+ version = 2
320+ [plugins]
321+ [plugins."io.containerd.grpc.v1.cri"]
322+ [plugins."io.containerd.grpc.v1.cri".containerd]
323+ default_runtime_name = "test"
324+ [plugins."io.containerd.grpc.v1.cri".containerd.runtimes]
325+ [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.test]
326+ privileged_without_host_devices = false
327+ runtime_engine = ""
328+ runtime_root = ""
329+ runtime_type = "io.containerd.runc.v2"
330+ [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.test.options]
331+ BinaryName = "/usr/bin/test"
332+ ` ,
333+ expectedConfig : `
334+ version = 2
335+ [plugins]
336+ [plugins."io.containerd.grpc.v1.cri"]
337+ [plugins."io.containerd.grpc.v1.cri".containerd]
338+ [plugins."io.containerd.grpc.v1.cri".containerd.runtimes]
339+ [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.test]
340+ privileged_without_host_devices = false
341+ runtime_engine = ""
342+ runtime_root = ""
343+ runtime_type = "io.containerd.runc.v2"
344+ [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.test.options]
345+ BinaryName = "/usr/bin/test"
346+ ` ,
347+ expectedError : nil ,
348+ },
260349 }
261350
262351 for _ , tc := range testCases {
0 commit comments