diff options
author | Paweł Chmielowski <pawel@process-one.net> | 2015-04-09 18:14:30 +0300 |
---|---|---|
committer | Paweł Chmielowski <pawel@process-one.net> | 2015-04-09 18:14:30 +0300 |
commit | b9fdcc3985278b3ea108786c04c532b38b754bf1 (patch) | |
tree | b181f975f088ae77d3a8e4528d094f6c13f3f92c /test | |
parent | e8701802ee28cd8c8dfd4c182b93b60aca3eb22e (diff) |
Add ability to configure parameters used by "make test" with test/config.ctc
Diffstat (limited to 'test')
-rw-r--r-- | test/ejabberd_SUITE_data/ejabberd.yml | 24 | ||||
-rw-r--r-- | test/suite.erl | 36 |
2 files changed, 46 insertions, 14 deletions
diff --git a/test/ejabberd_SUITE_data/ejabberd.yml b/test/ejabberd_SUITE_data/ejabberd.yml index b23c69271..58f90c802 100644 --- a/test/ejabberd_SUITE_data/ejabberd.yml +++ b/test/ejabberd_SUITE_data/ejabberd.yml @@ -1,12 +1,12 @@ host_config: "pgsql.localhost": - odbc_username: "ejabberd_test" + odbc_username: "@@pgsql_user@@" odbc_type: pgsql - odbc_server: "localhost" - odbc_port: 5432 + odbc_server: "@@pgsql_server@@" + odbc_port: @@pgsql_port@@ odbc_pool_size: 1 - odbc_password: "ejabberd_test" - odbc_database: "ejabberd_test" + odbc_password: "@@pgsql_pass@@" + odbc_database: "@@pgsql_db@@" auth_method: odbc modules: mod_announce: @@ -106,13 +106,13 @@ Welcome to this XMPP server." mod_time: [] mod_version: [] "mysql.localhost": - odbc_username: "ejabberd_test" + odbc_username: "@@mysql_user@@" odbc_type: mysql - odbc_server: "localhost" - odbc_port: 3306 + odbc_server: "@@mysql_server@@" + odbc_port: @@mysql_port@@ odbc_pool_size: 1 - odbc_password: "ejabberd_test" - odbc_database: "ejabberd_test" + odbc_password: "@@mysql_pass@@" + odbc_database: "@@mysql_db@@" auth_method: odbc modules: mod_announce: @@ -331,7 +331,7 @@ define_macro: language: "en" listen: - - port: 5222 + port: @@c2s_port@@ module: ejabberd_c2s max_stanza_size: 65536 certfile: CERTFILE @@ -343,7 +343,7 @@ listen: port: 5269 module: ejabberd_s2s_in - - port: 5280 + port: @@web_port@@ module: ejabberd_http captcha: true loglevel: 4 diff --git a/test/suite.erl b/test/suite.erl index 69bfbecef..3b5d402c8 100644 --- a/test/suite.erl +++ b/test/suite.erl @@ -21,13 +21,30 @@ init_config(Config) -> PrivDir = proplists:get_value(priv_dir, Config), [_, _|Tail] = lists:reverse(filename:split(DataDir)), BaseDir = filename:join(lists:reverse(Tail)), - ConfigPath = filename:join([DataDir, "ejabberd.yml"]), + ConfigPathTpl = filename:join([DataDir, "ejabberd.yml"]), LogPath = filename:join([PrivDir, "ejabberd.log"]), SASLPath = filename:join([PrivDir, "sasl.log"]), MnesiaDir = filename:join([PrivDir, "mnesia"]), CertFile = filename:join([DataDir, "cert.pem"]), {ok, CWD} = file:get_cwd(), {ok, _} = file:copy(CertFile, filename:join([CWD, "cert.pem"])), + {ok, CfgContentTpl} = file:read_file(ConfigPathTpl), + CfgContent = process_config_tpl(CfgContentTpl, [ + {c2s_port, 5222}, + {web_port, 5280}, + {mysql_server, <<"localhost">>}, + {mysql_port, 3306}, + {mysql_db, <<"ejabberd_test">>}, + {mysql_user, <<"ejabberd_test">>}, + {mysql_pass, <<"ejabberd_test">>}, + {pgsql_server, <<"localhost">>}, + {pgsql_port, 5432}, + {pgsql_db, <<"ejabberd_test">>}, + {pgsql_user, <<"ejabberd_test">>}, + {pgsql_pass, <<"ejabberd_test">>} + ]), + ConfigPath = filename:join([CWD, "ejabberd.yml"]), + ok = file:write_file(ConfigPath, CfgContent), ok = application:load(sasl), ok = application:load(mnesia), ok = application:load(ejabberd), @@ -35,7 +52,7 @@ init_config(Config) -> application:set_env(ejabberd, log_path, LogPath), application:set_env(sasl, sasl_error_logger, {file, SASLPath}), application:set_env(mnesia, dir, MnesiaDir), - [{server_port, 5222}, + [{server_port, ct:get_config(c2s_port, 5222)}, {server_host, "localhost"}, {server, ?COMMON_VHOST}, {user, <<"test_single">>}, @@ -50,6 +67,21 @@ init_config(Config) -> {password, <<"password">>} |Config]. +process_config_tpl(Content, []) -> + Content; +process_config_tpl(Content, [{Name, DefaultValue} | Rest]) -> + Val = case ct:get_config(Name, DefaultValue) of + V1 when is_integer(V1) -> + integer_to_binary(V1); + V2 when is_atom(V2) -> + atom_to_binary(V2, latin1); + V3 -> + V3 + end, + NewContent = binary:replace(Content, <<"@@",(atom_to_binary(Name, latin1))/binary, "@@">>, Val), + process_config_tpl(NewContent, Rest). + + connect(Config) -> {ok, Sock} = ejabberd_socket:connect( ?config(server_host, Config), |