From f672d38aa5f1a2af1c19f1fe276fc44ba477a0bf Mon Sep 17 00:00:00 2001 From: Evan Lezar Date: Wed, 30 Oct 2024 13:56:56 +0100 Subject: [PATCH] [no-relnote] Rename config constants Signed-off-by: Evan Lezar --- internal/config/config.go | 11 ++++++----- internal/config/config_test.go | 21 +++++++++++++++++++-- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/internal/config/config.go b/internal/config/config.go index 5da0aba5..26ff3bea 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -32,9 +32,9 @@ import ( const ( FilePathOverrideEnvVar = "NVIDIA_CTK_CONFIG_FILE_PATH" + RelativeFilePath = "nvidia-container-runtime/config.toml" - configOverride = "XDG_CONFIG_HOME" - configFilePath = "nvidia-container-runtime/config.toml" + configRootOverride = "XDG_CONFIG_HOME" nvidiaCTKExecutable = "nvidia-ctk" nvidiaCTKDefaultFilePath = "/usr/bin/nvidia-ctk" @@ -79,11 +79,12 @@ func GetConfigFilePath() string { if configFilePathOverride := os.Getenv(FilePathOverrideEnvVar); configFilePathOverride != "" { return configFilePathOverride } - if XDGConfigDir := os.Getenv(configOverride); len(XDGConfigDir) != 0 { - return filepath.Join(XDGConfigDir, configFilePath) + configRoot := "/etc" + if XDGConfigDir := os.Getenv(configRootOverride); len(XDGConfigDir) != 0 { + configRoot = XDGConfigDir } - return filepath.Join("/etc", configFilePath) + return filepath.Join(configRoot, RelativeFilePath) } // GetConfig sets up the config struct. Values are read from a toml file diff --git a/internal/config/config_test.go b/internal/config/config_test.go index bd532018..ce86d17a 100644 --- a/internal/config/config_test.go +++ b/internal/config/config_test.go @@ -27,9 +27,26 @@ import ( func TestGetConfigWithCustomConfig(t *testing.T) { testDir := t.TempDir() - t.Setenv(configOverride, testDir) + t.Setenv(configRootOverride, testDir) - filename := filepath.Join(testDir, configFilePath) + filename := filepath.Join(testDir, RelativeFilePath) + + // By default debug is disabled + contents := []byte("[nvidia-container-runtime]\ndebug = \"/nvidia-container-toolkit.log\"") + + require.NoError(t, os.MkdirAll(filepath.Dir(filename), 0766)) + require.NoError(t, os.WriteFile(filename, contents, 0600)) + + cfg, err := GetConfig() + require.NoError(t, err) + require.Equal(t, "/nvidia-container-toolkit.log", cfg.NVIDIAContainerRuntimeConfig.DebugFilePath) +} + +func TestGetConfigWithConfigFilePathOverride(t *testing.T) { + testDir := t.TempDir() + filename := filepath.Join(testDir, RelativeFilePath) + + t.Setenv(FilePathOverrideEnvVar, filename) // By default debug is disabled contents := []byte("[nvidia-container-runtime]\ndebug = \"/nvidia-container-toolkit.log\"")