diff --git a/CHANGELOG.md b/CHANGELOG.md index c6a2c4f8..0cef8a29 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ### Changed ### Fixed +* Preset `stats_quantile_tolerated_error` `crud.cfg` parameter is no + more lost on configuration update (#284). ## [0.11.1] - 06-05-22 diff --git a/crud/cfg.lua b/crud/cfg.lua index 0e0acfa7..d716f2bf 100644 --- a/crud/cfg.lua +++ b/crud/cfg.lua @@ -54,7 +54,7 @@ local function configure_stats(cfg, opts) opts.stats_quantiles = cfg.stats_quantiles end - if opts.stats_quantiles == nil then + if opts.stats_quantile_tolerated_error == nil then opts.stats_quantile_tolerated_error = cfg.stats_quantile_tolerated_error end diff --git a/test/integration/cfg_test.lua b/test/integration/cfg_test.lua index 53621fd2..cafa0f22 100644 --- a/test/integration/cfg_test.lua +++ b/test/integration/cfg_test.lua @@ -78,3 +78,25 @@ group.test_role_reload_preserves_values = function(g) local cfg = router:eval("return require('crud').cfg") t.assert_equals(cfg.stats, true) end + +group.test_gh_284_preset_stats_quantile_tolerated_error_is_preserved = function(g) + -- Arrange some cfg values so test case will not depend on defaults. + local cfg = g.cluster:server('router'):eval( + "return require('crud').cfg(...)", + {{ stats = false }}) + t.assert_equals(cfg.stats, false) + + -- Set stats_quantile_tolerated_error. + local cfg = g.cluster:server('router'):eval( + "return require('crud').cfg(...)", + {{ stats_quantile_tolerated_error = 1e-4 }}) + t.assert_equals(cfg.stats_quantile_tolerated_error, 1e-4) + + -- Set another cfg parameter, assert preset stats_quantile_tolerated_error presents. + local cfg = g.cluster:server('router'):eval( + "return require('crud').cfg(...)", + {{ stats = true }}) + t.assert_equals(cfg.stats, true) + t.assert_equals(cfg.stats_quantile_tolerated_error, 1e-4, + 'Preset stats_quantile_tolerated_error presents') +end