Skip to content

Commit 58e4927

Browse files
authored
test: Add TestLoadConfigToml
Signed-off-by: Sun Jianqiang <sunjianqiangv@foxmail.com>
1 parent c77b3c4 commit 58e4927

File tree

1 file changed

+67
-0
lines changed

1 file changed

+67
-0
lines changed

api/config/v1/toml_test.go

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package config
1818

1919
import (
2020
"bytes"
21+
"os"
2122
"strings"
2223
"testing"
2324

@@ -326,6 +327,72 @@ func TestConfigFromToml(t *testing.T) {
326327
}
327328
}
328329

330+
func TestLoadConfigToml(t *testing.T) {
331+
cfgToml, err := defaultToml()
332+
require.NoError(t, err)
333+
334+
cfgToml.Set("nvidia-container-cli.ldconfig", "OVERRIDDEN")
335+
cfgToml.Set("nvidia-container-cli.debug", "/var/log/nvidia-container-toolkit.log")
336+
cfgToml.Set("nvidia-container-runtime.debug", "/var/log/nvidia-container-runtime.log")
337+
338+
tmpFile, err := os.CreateTemp("", "config.toml")
339+
require.NoError(t, err)
340+
defer os.Remove(tmpFile.Name())
341+
342+
_, err = cfgToml.Save(tmpFile)
343+
require.NoError(t, err)
344+
tmpFile.Close()
345+
346+
testCases := []struct {
347+
description string
348+
options options
349+
expected string
350+
}{
351+
{
352+
description: "empty filename returns default config",
353+
options: options{
354+
configFile: "",
355+
},
356+
expected: func() string {
357+
cfgToml, _ := defaultToml()
358+
buffer := new(bytes.Buffer)
359+
cfgToml.Save(buffer)
360+
return buffer.String()
361+
}(),
362+
},
363+
{
364+
description: "save uncommented configuration items to file",
365+
options: options{
366+
configFile: tmpFile.Name(),
367+
},
368+
expected: func() string {
369+
cfgToml, _ := defaultToml()
370+
cfgToml.Set("nvidia-container-cli.ldconfig", "OVERRIDDEN")
371+
cfgToml.Set("nvidia-container-cli.debug", "/var/log/nvidia-container-toolkit.log")
372+
cfgToml.Set("nvidia-container-runtime.debug", "/var/log/nvidia-container-runtime.log")
373+
buffer := new(bytes.Buffer)
374+
cfgToml.Save(buffer)
375+
return buffer.String()
376+
}(),
377+
},
378+
}
379+
for _, tc := range testCases {
380+
t.Run(tc.description, func(t *testing.T) {
381+
tomlCfg, err := tc.options.loadConfigToml()
382+
require.NoError(t, err)
383+
384+
buffer := new(bytes.Buffer)
385+
_, err = tomlCfg.Save(buffer)
386+
require.NoError(t, err)
387+
388+
require.EqualValues(t,
389+
strings.TrimSpace(tc.expected),
390+
strings.TrimSpace(buffer.String()),
391+
)
392+
})
393+
}
394+
}
395+
329396
func createEmpty() *Toml {
330397
t, _ := TreeFromMap(nil)
331398
return t

0 commit comments

Comments
 (0)