Skip to content

Commit c205278

Browse files
SNOW-999076: Fix application directory (#1055)
1 parent bd9aa25 commit c205278

3 files changed

+57
-19
lines changed

client_configuration.go

+14-2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"fmt"
99
"os"
1010
"path"
11+
"path/filepath"
1112
"runtime"
1213
"strings"
1314
)
@@ -82,12 +83,23 @@ func existsFile(filePath string) (bool, error) {
8283
}
8384

8485
func clientConfigPredefinedDirs() []string {
86+
var predefinedDirs []string
87+
exeFile, err := os.Executable()
88+
if err != nil {
89+
logger.Warnf("Unable to access the application directory for client configuration search, err: %v", err)
90+
} else {
91+
predefinedDirs = append(predefinedDirs, filepath.Dir(exeFile))
92+
}
8593
homeDir, err := os.UserHomeDir()
8694
if err != nil {
8795
logger.Warnf("Unable to access Home directory for client configuration search, err: %v", err)
88-
return []string{"."}
96+
} else {
97+
predefinedDirs = append(predefinedDirs, homeDir)
98+
}
99+
if predefinedDirs == nil {
100+
return []string{}
89101
}
90-
return []string{".", homeDir}
102+
return predefinedDirs
91103
}
92104

93105
// ClientConfig config root

client_configuration_test.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"fmt"
77
"os"
88
"path"
9+
"path/filepath"
910
"strings"
1011
"testing"
1112
)
@@ -71,13 +72,15 @@ func TestNotFindConfigFileWhenNotDefined(t *testing.T) {
7172
}
7273

7374
func TestCreatePredefinedDirs(t *testing.T) {
75+
exeDir, _ := os.Executable()
76+
appDir := filepath.Dir(exeDir)
7477
homeDir, err := os.UserHomeDir()
7578
assertNilF(t, err, "get home dir error")
7679

7780
locations := clientConfigPredefinedDirs()
7881

7982
assertEqualF(t, len(locations), 2, "size")
80-
assertEqualE(t, locations[0], ".", "driver directory")
83+
assertEqualE(t, locations[0], appDir, "driver directory")
8184
assertEqualE(t, locations[1], homeDir, "home directory")
8285
}
8386

easy_logging_test.go

+39-16
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"fmt"
66
"os"
77
"path"
8+
"path/filepath"
89
"strings"
910
"testing"
1011
)
@@ -35,23 +36,45 @@ func TestInitializeEasyLoggingOnlyOnceWhenConfigGivenAsAParameter(t *testing.T)
3536
}
3637

3738
func TestConfigureEasyLoggingOnlyOnceWhenInitializedWithoutConfigFilePath(t *testing.T) {
38-
defer cleanUp()
39-
configDir, err := os.UserHomeDir()
40-
logDir := t.TempDir()
41-
assertNilF(t, err, "user home directory error")
42-
logLevel := levelError
43-
contents := createClientConfigContent(logLevel, logDir)
44-
configFilePath := createFile(t, defaultConfigName, contents, configDir)
45-
defer os.Remove(configFilePath)
46-
easyLoggingInitTrials.reset()
47-
48-
err = openWithClientConfigFile(t, "")
49-
assertNilF(t, err, "open config error")
50-
err = openWithClientConfigFile(t, "")
51-
assertNilF(t, err, "open config error")
39+
appExe, err := os.Executable()
40+
assertNilF(t, err, "application exe not accessible")
41+
userHome, err := os.UserHomeDir()
42+
assertNilF(t, err, "user home directory not accessible")
43+
44+
testcases := []struct {
45+
name string
46+
dir string
47+
}{
48+
{
49+
name: "user home directory",
50+
dir: userHome,
51+
},
52+
{
53+
name: "application directory",
54+
dir: filepath.Dir(appExe),
55+
},
56+
}
5257

53-
assertEqualE(t, toClientConfigLevel(logger.GetLogLevel()), logLevel, "error log level check")
54-
assertEqualE(t, easyLoggingInitTrials.configureCounter, 1)
58+
for _, test := range testcases {
59+
t.Run(test.name, func(t *testing.T) {
60+
defer cleanUp()
61+
logDir := t.TempDir()
62+
assertNilF(t, err, "user home directory error")
63+
logLevel := levelError
64+
contents := createClientConfigContent(logLevel, logDir)
65+
configFilePath := createFile(t, defaultConfigName, contents, test.dir)
66+
defer os.Remove(configFilePath)
67+
easyLoggingInitTrials.reset()
68+
69+
err = openWithClientConfigFile(t, "")
70+
assertNilF(t, err, "open config error")
71+
err = openWithClientConfigFile(t, "")
72+
assertNilF(t, err, "open config error")
73+
74+
assertEqualE(t, toClientConfigLevel(logger.GetLogLevel()), logLevel, "error log level check")
75+
assertEqualE(t, easyLoggingInitTrials.configureCounter, 1)
76+
})
77+
}
5578
}
5679

5780
func TestReconfigureEasyLoggingIfConfigPathWasNotGivenForTheFirstTime(t *testing.T) {

0 commit comments

Comments
 (0)