@@ -279,6 +279,21 @@ func init() {
279279 }
280280}
281281
282+ func BenchmarkLoadFile (b * testing.B ) {
283+ k := koanf .New (delim )
284+
285+ // Don't use TOML here because it distorts memory benchmarks due to high memory use
286+ providers := []* file.File {file .Provider (mockJSON ), file .Provider (mockYAML )}
287+ parsers := []koanf.Parser {json .Parser (), yaml .Parser ()}
288+
289+ b .ResetTimer ()
290+ for n := 0 ; n < b .N ; n ++ {
291+ if err := k .Load (providers [n % 2 ], parsers [n % 2 ]); err != nil {
292+ b .Fatalf ("Unexpected error: %+v" , k )
293+ }
294+ }
295+ }
296+
282297func TestLoadFile (t * testing.T ) {
283298 // Load a non-existent file.
284299 _ , err := file .Provider ("does-not-exist" ).ReadBytes ()
@@ -996,7 +1011,7 @@ func TestGetTypes(t *testing.T) {
9961011 assert .Equal ([]string {"red" , "blue" , "orange" }, c .koanf .Strings ("orphan" ))
9971012
9981013 assert .Equal (map [string ]string {"key1" : "val1" , "key2" : "val2" , "key3" : "val3" }, c .koanf .StringMap ("parent1.strmap" ))
999- assert .Equal (map [string ][]string {"key1" : [] string {"val1" , "val2" , "val3" }, "key2" : [] string {"val4" , "val5" }}, c .koanf .StringsMap ("parent1.strsmap" ))
1014+ assert .Equal (map [string ][]string {"key1" : {"val1" , "val2" , "val3" }, "key2" : {"val4" , "val5" }}, c .koanf .StringsMap ("parent1.strsmap" ))
10001015 assert .Equal (map [string ]string {}, c .koanf .StringMap ("xxxx" ))
10011016 assert .Equal (map [string ]string {}, c .koanf .StringMap ("parent1.intmap" ))
10021017
@@ -1084,7 +1099,7 @@ func TestMustGetTypes(t *testing.T) {
10841099 assert .Panics (func () { c .koanf .MustStringMap ("xxxx" ) })
10851100 assert .Panics (func () { c .koanf .MustStringMap ("parent1.intmap" ) })
10861101 assert .Equal (map [string ]string {"key1" : "val1" , "key2" : "val2" , "key3" : "val3" }, c .koanf .MustStringMap ("parent1.strmap" ))
1087- assert .Equal (map [string ][]string {"key1" : [] string {"val1" , "val2" , "val3" }, "key2" : [] string {"val4" , "val5" }}, c .koanf .MustStringsMap ("parent1.strsmap" ))
1102+ assert .Equal (map [string ][]string {"key1" : {"val1" , "val2" , "val3" }, "key2" : {"val4" , "val5" }}, c .koanf .MustStringsMap ("parent1.strsmap" ))
10881103
10891104 // // Bools.
10901105 assert .Panics (func () { c .koanf .MustBools ("xxxx" ) })
0 commit comments