summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniil Fedotov <dfedotov@pivotal.io>2016-03-03 15:06:01 +0000
committerDaniil Fedotov <dfedotov@pivotal.io>2016-03-03 15:06:01 +0000
commitfd5c4c6a496676d36f06b883a98aaa2678666246 (patch)
tree3597f22384ffe480d04eeaf770bfc05c65c681b3
parentc61a79f050bbffc00329c1a56b09732508fbf63c (diff)
downloadrabbitmq-server-git-fd5c4c6a496676d36f06b883a98aaa2678666246.tar.gz
config generation testing
-rw-r--r--test/src/rabbit_config_schema_test.erl43
1 files changed, 43 insertions, 0 deletions
diff --git a/test/src/rabbit_config_schema_test.erl b/test/src/rabbit_config_schema_test.erl
new file mode 100644
index 0000000000..306a02b780
--- /dev/null
+++ b/test/src/rabbit_config_schema_test.erl
@@ -0,0 +1,43 @@
+-module(rabbit_config_schema_test).
+
+-export([test_snippet/3]).
+-compile(export_all).
+
+test_snippet(Snippet, Expected, Plugins) ->
+ {Conf, Advanced} = write_snippet(Snippet),
+ rabbit_file:recursive_delete("generated"),
+ prepare_schemas(Plugins),
+ SchemaDir = rabbit_config:schema_dir(),
+ {ok, GeneratedFile} = generate_config(Conf, Advanced, SchemaDir),
+ {ok, [Generated]} = file:consult(GeneratedFile),
+ Expected = Generated.
+
+write_snippet({Name, Config, Advanced}) ->
+ rabbit_file:recursive_delete(filename:join(["examples", Name])),
+ file:make_dir("examples"),
+ file:make_dir(filename:join(["examples", Name])),
+ ConfFile = filename:join(["examples", Name, "config.conf"]),
+ AdvancedFile = filename:join(["examples", Name, "advanced.config"]),
+
+ file:write_file(ConfFile, Config),
+ rabbit_file:write_term_file(AdvancedFile, [Advanced]),
+ {ConfFile, AdvancedFile}.
+
+
+generate_config(Conf, Advanced, SchemaDir) ->
+ ScriptDir = case init:get_argument(conf_script_dir) of
+ {ok, D} -> D;
+ _ -> "scripts"
+ end,
+ rabbit_config:generate_config_file([Conf], ".", ScriptDir,
+ SchemaDir, Advanced).
+
+prepare_schemas(Plugins) ->
+ {ok, EnabledFile} = application:get_env(rabbit, enabled_plugins_file),
+ rabbit_file:write_term_file(EnabledFile, [Plugins]).
+
+
+
+
+
+