From e644d7c078c9b75edf1ba513a030d33921af8192 Mon Sep 17 00:00:00 2001 From: Mikhail Uvarov Date: Mon, 12 Aug 2019 01:49:59 +0200 Subject: Correctly render redefined variable Rendering of variables behaves differently for already defined variables. Values of such variables are rendered in the wrong order, ignoring any variables above from the same file. --- test/rlx_release_SUITE.erl | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'test/rlx_release_SUITE.erl') diff --git a/test/rlx_release_SUITE.erl b/test/rlx_release_SUITE.erl index a582526..7ddaa14 100644 --- a/test/rlx_release_SUITE.erl +++ b/test/rlx_release_SUITE.erl @@ -781,14 +781,18 @@ overlay_release(Config) -> goal_app_2]}]), VarsFile1 = filename:join([LibDir1, "vars1.config"]), + %% tpl_var is defined in vars1, but redifined in vars2 using template. rlx_test_utils:write_config(VarsFile1, [{yahoo, "yahoo"}, {yahoo2, [{foo, "bar"}]}, {foo_yahoo, "foo_{{yahoo}}"}, - {foo_dir, "foodir"}]), + {foo_dir, "foodir"}, + {tpl_var, "defined in vars1"}]), VarsFile2 = filename:join([LibDir1, "vars2.config"]), rlx_test_utils:write_config(VarsFile2, [{google, "yahoo"}, {yahoo2, "foo"}, + {tpl_arg, "a template value"}, + {tpl_var, "Redefined in vars2 with {{tpl_arg}}"}, OverlayVars3]), VarsFile3 = filename:join([LibDir1, "vars3.config"]), @@ -857,7 +861,11 @@ overlay_release(Config) -> ?assertEqual("val1", proplists:get_value(prop1, TemplateData)), ?assertEqual(2, - proplists:get_value(prop2, TemplateData)). + proplists:get_value(prop2, TemplateData)), + %% This should be rendered correctly based on VarsFile2 file, regardless + %% of tpl_var defined in VarsFile1 or not. + ?assertEqual("Redefined in vars2 with a template value", + proplists:get_value(tpl_var, TemplateData)). make_goalless_release(Config) -> LibDir1 = proplists:get_value(lib1, Config), -- cgit v1.2.3