@@ -35,22 +35,57 @@ init_per_suite(Config) ->
35
35
LDIFFile = filename :join ([DataDir , " ejabberd.ldif" ]),
36
36
{ok , _ } = file :copy (ExtAuthScript , filename :join ([CWD , " extauth.py" ])),
37
37
{ok , _ } = ldap_srv :start (LDIFFile ),
38
- ok = application : start ( ejabberd ),
38
+ start_ejabberd ( NewConfig ),
39
39
NewConfig .
40
40
41
+ start_ejabberd (Config ) ->
42
+ case proplists :get_value (backends , Config ) of
43
+ all ->
44
+ ok = application :start (ejabberd , transient );
45
+ Backends when is_list (Backends ) ->
46
+ Hosts = lists :map (fun (Backend ) -> Backend ++ " .localhost" end , Backends ),
47
+ application :load (ejabberd ),
48
+ AllHosts = Hosts ++ [" localhost" ], % % We always need localhost for the generic no_db tests
49
+ application :set_env (ejabberd , hosts , AllHosts ),
50
+ ok = application :start (ejabberd , transient )
51
+ end .
52
+
41
53
end_per_suite (_Config ) ->
42
- ok .
54
+ application : stop ( ejabberd ) .
43
55
44
- init_per_group (no_db , Config ) ->
56
+ -define (BACKENDS , [mnesia ,redis ,mysql ,pgsql ,sqlite ,ldap ,extauth ,riak ]).
57
+
58
+ init_per_group (Group , Config ) ->
59
+ case lists :member (Group , ? BACKENDS ) of
60
+ false ->
61
+ % % Not a backend related group, do default init:
62
+ do_init_per_group (Group , Config );
63
+ true ->
64
+ case proplists :get_value (backends , Config ) of
65
+ all ->
66
+ % % All backends enabled
67
+ do_init_per_group (Group , Config );
68
+ Backends ->
69
+ % % Skipped backends that were not explicitely enabled
70
+ case lists :member (atom_to_list (Group ), Backends ) of
71
+ true ->
72
+ do_init_per_group (Group , Config );
73
+ false ->
74
+ {skip , {disabled_backend , Group }}
75
+ end
76
+ end
77
+ end .
78
+
79
+ do_init_per_group (no_db , Config ) ->
45
80
re_register (Config ),
46
81
Config ;
47
- init_per_group (mnesia , Config ) ->
82
+ do_init_per_group (mnesia , Config ) ->
48
83
mod_muc :shutdown_rooms (? MNESIA_VHOST ),
49
84
set_opt (server , ? MNESIA_VHOST , Config );
50
- init_per_group (redis , Config ) ->
85
+ do_init_per_group (redis , Config ) ->
51
86
mod_muc :shutdown_rooms (? REDIS_VHOST ),
52
87
set_opt (server , ? REDIS_VHOST , Config );
53
- init_per_group (mysql , Config ) ->
88
+ do_init_per_group (mysql , Config ) ->
54
89
case catch ejabberd_odbc :sql_query (? MYSQL_VHOST , [<<" select 1;" >>]) of
55
90
{selected , _ , _ } ->
56
91
mod_muc :shutdown_rooms (? MYSQL_VHOST ),
@@ -59,7 +94,7 @@ init_per_group(mysql, Config) ->
59
94
Err ->
60
95
{skip , {mysql_not_available , Err }}
61
96
end ;
62
- init_per_group (pgsql , Config ) ->
97
+ do_init_per_group (pgsql , Config ) ->
63
98
case catch ejabberd_odbc :sql_query (? PGSQL_VHOST , [<<" select 1;" >>]) of
64
99
{selected , _ , _ } ->
65
100
mod_muc :shutdown_rooms (? PGSQL_VHOST ),
@@ -68,19 +103,19 @@ init_per_group(pgsql, Config) ->
68
103
Err ->
69
104
{skip , {pgsql_not_available , Err }}
70
105
end ;
71
- init_per_group (sqlite , Config ) ->
106
+ do_init_per_group (sqlite , Config ) ->
72
107
case catch ejabberd_odbc :sql_query (? SQLITE_VHOST , [<<" select 1;" >>]) of
73
108
{selected , _ , _ } ->
74
109
mod_muc :shutdown_rooms (? SQLITE_VHOST ),
75
110
set_opt (server , ? SQLITE_VHOST , Config );
76
111
Err ->
77
112
{skip , {sqlite_not_available , Err }}
78
113
end ;
79
- init_per_group (ldap , Config ) ->
114
+ do_init_per_group (ldap , Config ) ->
80
115
set_opt (server , ? LDAP_VHOST , Config );
81
- init_per_group (extauth , Config ) ->
116
+ do_init_per_group (extauth , Config ) ->
82
117
set_opt (server , ? EXTAUTH_VHOST , Config );
83
- init_per_group (riak , Config ) ->
118
+ do_init_per_group (riak , Config ) ->
84
119
case ejabberd_riak :is_connected () of
85
120
true ->
86
121
mod_muc :shutdown_rooms (? RIAK_VHOST ),
@@ -89,7 +124,7 @@ init_per_group(riak, Config) ->
89
124
Err ->
90
125
{skip , {riak_not_available , Err }}
91
126
end ;
92
- init_per_group (_GroupName , Config ) ->
127
+ do_init_per_group (_GroupName , Config ) ->
93
128
Pid = start_event_relay (),
94
129
set_opt (event_relay , Pid , Config ).
95
130
@@ -967,9 +1002,9 @@ mix_master(Config) ->
967
1002
retract = [ParticipantID ]}]}]}),
968
1003
disconnect (Config ).
969
1004
970
- mix_slave (Config ) ->
1005
+ mix_slave (Config ) ->
971
1006
disconnect (Config ).
972
-
1007
+
973
1008
roster_subscribe_master (Config ) ->
974
1009
send (Config , # presence {}),
975
1010
? recv1 (# presence {}),
0 commit comments