diff options
author | Simon MacMullen <simon@rabbitmq.com> | 2014-09-18 12:26:23 +0100 |
---|---|---|
committer | Simon MacMullen <simon@rabbitmq.com> | 2014-09-18 12:26:23 +0100 |
commit | bff67bd67dd96a63715c645ab4fad9c2467a292c (patch) | |
tree | 32d6400167974546fc9068678d7f4f0ac71ddb34 | |
parent | 5514a3c3055619fa0391bbc4d3cb4fc0f2250763 (diff) | |
download | rabbitmq-server-bff67bd67dd96a63715c645ab4fad9c2467a292c.tar.gz |
Split mirrored_supervisor_tests in two to avoid behaviour clash.
-rw-r--r-- | src/mirrored_supervisor_tests.erl | 67 | ||||
-rw-r--r-- | src/mirrored_supervisor_tests_gs.erl | 66 |
2 files changed, 80 insertions, 53 deletions
diff --git a/src/mirrored_supervisor_tests.erl b/src/mirrored_supervisor_tests.erl index 26f59e01..bf7d2e55 100644 --- a/src/mirrored_supervisor_tests.erl +++ b/src/mirrored_supervisor_tests.erl @@ -16,15 +16,14 @@ -module(mirrored_supervisor_tests). --compile([export_all]). +-export([all_tests/0]). --export([init/1, handle_call/3, handle_info/2, terminate/2, code_change/3, - handle_cast/2]). +-export([init/1]). --behaviour(gen_server). -behaviour(mirrored_supervisor). --define(MS, mirrored_supervisor). +-define(MS, mirrored_supervisor). +-define(SERVER, mirrored_supervisor_tests_gs). %% --------------------------------------------------------------------------- %% Functional tests @@ -176,14 +175,14 @@ test_start_idempotence() -> test_unsupported() -> try ?MS:start_link({global, foo}, get_group(group), fun tx_fun/1, ?MODULE, - {sup, one_for_one, []}), + {one_for_one, []}), exit(no_global) catch error:badarg -> ok end, try ?MS:start_link({local, foo}, get_group(group), fun tx_fun/1, ?MODULE, - {sup, simple_one_for_one, []}), + {simple_one_for_one, []}), exit(no_sofo) catch error:badarg -> ok @@ -193,7 +192,7 @@ test_unsupported() -> %% Just test we don't blow up test_ignore() -> ?MS:start_link({local, foo}, get_group(group), fun tx_fun/1, ?MODULE, - {sup, fake_strategy_for_ignore, []}), + {fake_strategy_for_ignore, []}), passed. test_startup_failure() -> @@ -203,7 +202,7 @@ test_startup_failure() -> test_startup_failure(Fail) -> process_flag(trap_exit, true), ?MS:start_link(get_group(group), fun tx_fun/1, ?MODULE, - {sup, one_for_one, [childspec(Fail)]}), + {one_for_one, [childspec(Fail)]}), receive {'EXIT', _, shutdown} -> ok @@ -237,23 +236,14 @@ start_sup(Name, Group) -> start_sup0(anon, Group, ChildSpecs) -> ?MS:start_link(Group, fun tx_fun/1, ?MODULE, - {sup, one_for_one, ChildSpecs}); + {one_for_one, ChildSpecs}); start_sup0(Name, Group, ChildSpecs) -> ?MS:start_link({local, Name}, Group, fun tx_fun/1, ?MODULE, - {sup, one_for_one, ChildSpecs}). + {one_for_one, ChildSpecs}). childspec(Id) -> - {Id, {?MODULE, start_gs, [Id]}, transient, 16#ffffffff, worker, [?MODULE]}. - -start_gs(want_error) -> - {error, foo}; - -start_gs(want_exit) -> - exit(foo); - -start_gs(Id) -> - gen_server:start_link({local, Id}, ?MODULE, server, []). + {Id,{?SERVER, start_link, [Id]}, transient, 16#ffffffff, worker, [?MODULE]}. pid_of(Id) -> {received, Pid, ping} = call(Id, ping), @@ -309,38 +299,9 @@ kill_wait(Pid) -> end. %% --------------------------------------------------------------------------- -%% Dumb gen_server we can supervise -%% --------------------------------------------------------------------------- -init({sup, fake_strategy_for_ignore, _ChildSpecs}) -> +init({fake_strategy_for_ignore, _ChildSpecs}) -> ignore; -init({sup, Strategy, ChildSpecs}) -> - {ok, {{Strategy, 0, 1}, ChildSpecs}}; - -init(server) -> - {ok, state}. - -handle_call(Msg, _From, State) -> - die_if_my_supervisor_is_evil(), - {reply, {received, self(), Msg}, State}. - -handle_cast(_Msg, State) -> - {noreply, State}. - -handle_info(_Info, State) -> - {noreply, State}. - -terminate(_Reason, _State) -> - ok. - -code_change(_OldVsn, State, _Extra) -> - {ok, State}. - -die_if_my_supervisor_is_evil() -> - try lists:keysearch(self(), 2, ?MS:which_children(evil)) of - false -> ok; - _ -> exit(doooom) - catch - exit:{noproc, _} -> ok - end. +init({Strategy, ChildSpecs}) -> + {ok, {{Strategy, 0, 1}, ChildSpecs}}. diff --git a/src/mirrored_supervisor_tests_gs.erl b/src/mirrored_supervisor_tests_gs.erl new file mode 100644 index 00000000..12ed0d6f --- /dev/null +++ b/src/mirrored_supervisor_tests_gs.erl @@ -0,0 +1,66 @@ +%% The contents of this file are subject to the Mozilla Public License +%% Version 1.1 (the "License"); you may not use this file except in +%% compliance with the License. You may obtain a copy of the License at +%% http://www.mozilla.org/MPL/ +%% +%% Software distributed under the License is distributed on an "AS IS" +%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the +%% License for the specific language governing rights and limitations +%% under the License. +%% +%% The Original Code is RabbitMQ. +%% +%% The Initial Developer of the Original Code is GoPivotal, Inc. +%% Copyright (c) 2011-2014 GoPivotal, Inc. All rights reserved. +%% + +-module(mirrored_supervisor_tests_gs). + +%% Dumb gen_server we can supervise + +-export([start_link/1]). + +-export([init/1, handle_call/3, handle_info/2, terminate/2, code_change/3, + handle_cast/2]). + +-behaviour(gen_server). + +-define(MS, mirrored_supervisor). + +start_link(want_error) -> + {error, foo}; + +start_link(want_exit) -> + exit(foo); + +start_link(Id) -> + gen_server:start_link({local, Id}, ?MODULE, [], []). + +%% --------------------------------------------------------------------------- + +init([]) -> + {ok, state}. + +handle_call(Msg, _From, State) -> + die_if_my_supervisor_is_evil(), + {reply, {received, self(), Msg}, State}. + +handle_cast(_Msg, State) -> + {noreply, State}. + +handle_info(_Info, State) -> + {noreply, State}. + +terminate(_Reason, _State) -> + ok. + +code_change(_OldVsn, State, _Extra) -> + {ok, State}. + +die_if_my_supervisor_is_evil() -> + try lists:keysearch(self(), 2, ?MS:which_children(evil)) of + false -> ok; + _ -> exit(doooom) + catch + exit:{noproc, _} -> ok + end. |