summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnaud Cogoluègnes <acogoluegnes@gmail.com>2016-12-29 17:33:28 +0100
committerArnaud Cogoluègnes <acogoluegnes@gmail.com>2016-12-29 17:33:28 +0100
commiteeaafa91e6299a41faf6c7972f6418e518b245d2 (patch)
tree8aef86d082f344a83d47ff3717f40944d052f47f
parentcf259df33dc27b9ca99682cdccc1067eb76fd808 (diff)
downloadrabbitmq-server-git-eeaafa91e6299a41faf6c7972f6418e518b245d2.tar.gz
Launch topic authorisation test in broker
References #505
-rw-r--r--test/topic_permission_SUITE.erl83
1 files changed, 38 insertions, 45 deletions
diff --git a/test/topic_permission_SUITE.erl b/test/topic_permission_SUITE.erl
index 2d36cc8551..b7d65e6d0c 100644
--- a/test/topic_permission_SUITE.erl
+++ b/test/topic_permission_SUITE.erl
@@ -33,56 +33,45 @@ groups() -> [
]}
].
+init_per_suite(Config) ->
+ rabbit_ct_helpers:log_environment(),
+ Config1 = rabbit_ct_helpers:set_config(Config, [
+ {rmq_nodename_suffix, ?MODULE}
+ ]),
+ rabbit_ct_helpers:run_setup_steps(Config1,
+ rabbit_ct_broker_helpers:setup_steps() ++
+ rabbit_ct_client_helpers:setup_steps()).
+
+end_per_suite(Config) ->
+ rabbit_ct_helpers:run_teardown_steps(Config,
+ rabbit_ct_client_helpers:teardown_steps() ++
+ rabbit_ct_broker_helpers:teardown_steps()).
+
init_per_group(_, Config) -> Config.
end_per_group(_, Config) -> Config.
-init_per_testcase(Testcase, Config) when Testcase =:= topic_permission_database_access;
- Testcase =:= topic_permission_checks ->
- mnesia:start(),
- create_tables([rabbit_topic_permission, rabbit_user, rabbit_vhost]),
- {ok, Pool} = worker_pool_sup:start_link(1, worker_pool:default_pool()),
- {ok, Registry} = rabbit_registry:start_link(),
- {ok, Event} = rabbit_event:start_link(),
- Config1 = rabbit_ct_helpers:set_config(Config,[
- {pool_sup, Pool}, {registry_sup, Registry},
- {event_sup, Event}
- ]),
- file_handle_cache_stats:init(),
- Config1;
-init_per_testcase(_Testcase, Config) ->
- Config.
-
-create_tables(Tables) ->
- AllTables = rabbit_table:definitions(),
- [begin
- ShortDefinition = [begin
- {Field, proplists:get_value(Field, Definition)}
- end || Field <- [record_name, attributes]],
- mnesia:create_table(Name, ShortDefinition)
- end || {Name, Definition} <- AllTables, proplists:is_defined(Name, Tables)].
-
-end_per_testcase(Testcase, Config) when Testcase =:= topic_permission_database_access;
- Testcase =:= topic_permission_checks ->
- mnesia:stop(),
- [begin
- Sup = ?config(SupEntry, Config),
- unlink(Sup),
- exit(Sup, kill)
- end || SupEntry <- [pool_sup, registry_sup, event_sup]],
- ok;
-end_per_testcase(_TC, _Config) ->
+init_per_testcase(Testcase, Config) ->
+ ok = rabbit_ct_broker_helpers:rpc(Config, 0,
+ ?MODULE, clear_tables, []),
+ rabbit_ct_helpers:testcase_started(Config, Testcase).
+
+clear_tables() ->
+ {atomic, ok} = mnesia:clear_table(rabbit_topic_permission),
+ {atomic, ok} = mnesia:clear_table(rabbit_vhost),
+ {atomic, ok} = mnesia:clear_table(rabbit_user),
ok.
-topic_permission_database_access(_Config) ->
+end_per_testcase(Testcase, Config) ->
+ rabbit_ct_helpers:testcase_finished(Config, Testcase).
+
+topic_permission_database_access(Config) ->
+ ok = rabbit_ct_broker_helpers:rpc(Config, 0,
+ ?MODULE, topic_permission_database_access1, [Config]).
+
+topic_permission_database_access1(_Config) ->
0 = length(ets:tab2list(rabbit_topic_permission)),
- rabbit_misc:execute_mnesia_transaction(fun() ->
- ok = mnesia:write(rabbit_vhost,
- #vhost{virtual_host = <<"/">>},
- write),
- ok = mnesia:write(rabbit_vhost,
- #vhost{virtual_host = <<"other-vhost">>},
- write)
- end),
+ rabbit_vhost:add(<<"/">>),
+ rabbit_vhost:add(<<"other-vhost">>),
rabbit_auth_backend_internal:add_user(<<"guest">>, <<"guest">>),
rabbit_auth_backend_internal:add_user(<<"dummy">>, <<"dummy">>),
@@ -156,7 +145,11 @@ topic_permission_database_access(_Config) ->
)),
ok.
-topic_permission_checks(_Config) ->
+topic_permission_checks(Config) ->
+ ok = rabbit_ct_broker_helpers:rpc(Config, 0,
+ ?MODULE, topic_permission_checks1, [Config]).
+
+topic_permission_checks1(_Config) ->
0 = length(ets:tab2list(rabbit_topic_permission)),
rabbit_misc:execute_mnesia_transaction(fun() ->
ok = mnesia:write(rabbit_vhost,