mirror of
https://github.com/processone/ejabberd.git
synced 2024-12-06 16:42:56 +01:00
Add ability to configure parameters used by "make test" with test/config.ctc
This commit is contained in:
parent
e8701802ee
commit
b9fdcc3985
@ -164,12 +164,21 @@ ElixirConfig = case lists:keysearch(elixir, 1, Cfg) of
|
||||
|
||||
{ok, Cwd} = file:get_cwd(),
|
||||
|
||||
TestConfigFile = filename:join([Cwd, "test", "config.ctc"]),
|
||||
TestConfig = case file:read_file_info(TestConfigFile) of
|
||||
{ok, _} ->
|
||||
"-userconfig ct_config_plain " ++ TestConfigFile ++ " ";
|
||||
_ ->
|
||||
""
|
||||
end,
|
||||
|
||||
Config = [{erl_opts, Macros ++ HiPE ++ DebugInfo ++
|
||||
[{src_dirs, [asn1, src | SrcDirs]}]},
|
||||
{sub_dirs, ["rel"]},
|
||||
{keep_build_info, true},
|
||||
{ct_extra_params, "-include "
|
||||
++ filename:join([Cwd, "tools"])},
|
||||
{ct_extra_params, "-ct_hooks cth_surefire "
|
||||
++ TestConfig
|
||||
++ "-include " ++ filename:join([Cwd, "tools"])},
|
||||
{xref_warnings, false},
|
||||
{xref_checks, []},
|
||||
{xref_queries,
|
||||
|
@ -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
|
||||
|
@ -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),
|
||||
|
Loading…
Reference in New Issue
Block a user