[#493] node/config: Fix corrupting of path to the subsection
In previous implementation `Config.Sub` method could lead to the violation of the internal `path` slice because of `append`. This has been observed on deeply nested subsections. Fix `Config.Sub` to copy internal slice in order to prevent violations. Cover problem case in test config files and unit test. Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
parent
72d81dba92
commit
e26dc0a6e3
4 changed files with 46 additions and 2 deletions
|
@ -42,3 +42,21 @@ func TestConfigEnv(t *testing.T) {
|
|||
|
||||
require.Equal(t, value, c.Sub(section).Value(name))
|
||||
}
|
||||
|
||||
func TestConfig_SubValue(t *testing.T) {
|
||||
configtest.ForEachFileType("test/config", func(c *config.Config) {
|
||||
c = c.
|
||||
Sub("section").
|
||||
Sub("sub").
|
||||
Sub("sub")
|
||||
|
||||
// get subsection 1
|
||||
sub := c.Sub("sub1")
|
||||
|
||||
// get subsection 2
|
||||
c.Sub("sub2")
|
||||
|
||||
// sub should not be corrupted
|
||||
require.Equal(t, "val1", sub.Value("key"))
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue