diff options
Diffstat (limited to 'lib/cosEvent/test/event_channel_SUITE.erl')
-rw-r--r-- | lib/cosEvent/test/event_channel_SUITE.erl | 326 |
1 files changed, 0 insertions, 326 deletions
diff --git a/lib/cosEvent/test/event_channel_SUITE.erl b/lib/cosEvent/test/event_channel_SUITE.erl deleted file mode 100644 index bbae8d782a..0000000000 --- a/lib/cosEvent/test/event_channel_SUITE.erl +++ /dev/null @@ -1,326 +0,0 @@ -%%----------------------------------------------------------------- -%% -%% %CopyrightBegin% -%% -%% Copyright Ericsson AB 1997-2016. All Rights Reserved. -%% -%% Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 -%% -%% Unless required by applicable law or agreed to in writing, software -%% distributed under the License is distributed on an "AS IS" BASIS, -%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -%% See the License for the specific language governing permissions and -%% limitations under the License. -%% -%% %CopyrightEnd% -%% -%% -%%----------------------------------------------------------------- - --module(event_channel_SUITE). - --include_lib("common_test/include/ct.hrl"). --include_lib("orber/include/corba.hrl"). --include_lib("orber/COSS/CosNaming/CosNaming.hrl"). --include_lib("orber/src/orber_iiop.hrl"). - -%%----------------------------------------------------------------- -%% Macros -%%----------------------------------------------------------------- - --define(default_timeout, test_server:minutes(5)). - - --define(match(ExpectedRes, Expr), - fun() -> - AcTuAlReS = (catch (Expr)), - case AcTuAlReS of - ExpectedRes -> - io:format("------ CORRECT RESULT ------~n~p~n", - [AcTuAlReS]), - AcTuAlReS; - _ -> - io:format("###### ERROR ERROR ######~n~p~n", - [AcTuAlReS]), - exit(AcTuAlReS) - end - end()). - - -%%----------------------------------------------------------------- -%% External exports -%%----------------------------------------------------------------- --export([all/0, suite/0,groups/0,init_per_group/2,end_per_group/2, - event_objects_api/1, events_api/1, events_sync_api/1, - cases/0, init_per_suite/1, end_per_suite/1, - init_per_testcase/2, end_per_testcase/2, app_test/1]). - -%%----------------------------------------------------------------- -%% Internal exports -%%----------------------------------------------------------------- - -suite() -> [{ct_hooks,[ts_install_cth]}]. - -all() -> - cases(). - -groups() -> - []. - -init_per_group(_GroupName, Config) -> - Config. - -end_per_group(_GroupName, Config) -> - Config. - - -cases() -> - [events_api, events_sync_api, event_objects_api, - app_test]. - -%%----------------------------------------------------------------- -%% Init and cleanup functions. -%%----------------------------------------------------------------- - -init_per_testcase(_Case, Config) -> - Dog=test_server:timetrap(?default_timeout), - [{watchdog, Dog}|Config]. - - -end_per_testcase(_Case, Config) -> - Dog = proplists:get_value(watchdog, Config), - test_server:timetrap_cancel(Dog), - ok. - -init_per_suite(Config) when is_list(Config) -> - Path = code:which(?MODULE), - code:add_pathz(filename:join(filename:dirname(Path), "idl_output")), - mnesia:delete_schema([node()]), - mnesia:create_schema([node()]), - orber:install([node()]), - application:start(mnesia), - application:start(orber), - cosEventApp:install(), - cosEventApp:start(), - oe_event_test_server:oe_register(), - Config. - -end_per_suite(Config) when is_list(Config) -> - oe_event_test_server:oe_unregister(), - cosEventApp:stop(), - cosEventApp:uninstall(), - application:stop(orber), - application:stop(mnesia), - mnesia:delete_schema([node()]), - Path = code:which(?MODULE), - code:del_path(filename:join(filename:dirname(Path), "idl_output")), - Config. - -%%----------------------------------------------------------------- -%% Tests app file -%%----------------------------------------------------------------- -app_test(doc) -> []; -app_test(suite) -> []; -app_test(_Config) -> - ok=test_server:app_test(cosEvent), - ok. - - - -%% Testing the CosEvent API to setup a complete service -event_objects_api(_Config) -> - - Ch = ?match({_,key,_,_,_,_}, cosEventApp:start_channel([{typecheck, true}, - {pull_interval, 300}])), - - AC=?match({_,key,_,_,_,_}, - 'CosEventChannelAdmin_EventChannel':for_consumers(Ch)), - AS=?match({_,key,_,_,_,_}, - 'CosEventChannelAdmin_EventChannel':for_suppliers(Ch)), - - PPushS=?match({_,key,_,_,_,_}, - 'CosEventChannelAdmin_ConsumerAdmin':obtain_push_supplier(AC)), - PPullS=?match({_,key,_,_,_,_}, - 'CosEventChannelAdmin_ConsumerAdmin':obtain_pull_supplier(AC)), - - PPushC=?match({_,key,_,_,_,_}, - 'CosEventChannelAdmin_SupplierAdmin':obtain_push_consumer(AS)), - PPullC=?match({_,key,_,_,_,_}, - 'CosEventChannelAdmin_SupplierAdmin':obtain_pull_consumer(AS)), - - PushC=?match({_,key,_,_,_,_}, - 'event_test_PushC':oe_create([])), - PullC=?match({_,key,_,_,_,_}, - 'event_test_PullC':oe_create(PPullC)), - - PushS=?match({_,key,_,_,_,_}, - 'event_test_PushS':oe_create(PPushC)), - - PullS=?match({_,key,_,_,_,_}, - 'event_test_PullS':oe_create([])), - - NIL = corba:create_nil_objref(), - - ?match({'EXCEPTION',{'BAD_PARAM',_,_,_}}, - 'CosEventChannelAdmin_ProxyPushSupplier':connect_push_consumer(PPushS, NIL)), - ?match({'EXCEPTION',{'BAD_PARAM',_,_,_}}, - 'CosEventChannelAdmin_ProxyPushSupplier':connect_push_consumer(PPushS, PullS)), - ?match(ok, 'CosEventChannelAdmin_ProxyPushSupplier':connect_push_consumer(PPushS, PushC)), - ?match({'EXCEPTION',{'CosEventChannelAdmin_AlreadyConnected',_}}, - 'CosEventChannelAdmin_ProxyPushSupplier':connect_push_consumer(PPushS, PushC)), - - ?match(ok, 'CosEventChannelAdmin_ProxyPullSupplier':connect_pull_consumer(PPullS, NIL)), - ?match({'EXCEPTION',{'BAD_PARAM',_,_,_}}, - 'CosEventChannelAdmin_ProxyPullSupplier':connect_pull_consumer(PPullS, PullS)), - ?match(ok, 'CosEventChannelAdmin_ProxyPullSupplier':connect_pull_consumer(PPullS, PullC)), - ?match({'EXCEPTION',{'CosEventChannelAdmin_AlreadyConnected',_}}, - 'CosEventChannelAdmin_ProxyPullSupplier':connect_pull_consumer(PPullS, PullC)), - - ?match(ok, 'CosEventChannelAdmin_ProxyPushConsumer':connect_push_supplier(PPushC, NIL)), - ?match({'EXCEPTION',{'BAD_PARAM',_,_,_}}, - 'CosEventChannelAdmin_ProxyPushConsumer':connect_push_supplier(PPushC, PullS)), - ?match(ok, 'CosEventChannelAdmin_ProxyPushConsumer':connect_push_supplier(PPushC, PushS)), - ?match({'EXCEPTION',{'CosEventChannelAdmin_AlreadyConnected',_}}, - 'CosEventChannelAdmin_ProxyPushConsumer':connect_push_supplier(PPushC, PushS)), - - ?match({'EXCEPTION',{'BAD_PARAM',_,_,_}}, - 'CosEventChannelAdmin_ProxyPullConsumer':connect_pull_supplier(PPullC, NIL)), - ?match({'EXCEPTION',{'BAD_PARAM',_,_,_}}, - 'CosEventChannelAdmin_ProxyPullConsumer':connect_pull_supplier(PPullC, PushS)), - ?match(ok, 'CosEventChannelAdmin_ProxyPullConsumer':connect_pull_supplier(PPullC, PullS)), - ?match({'EXCEPTION',{'CosEventChannelAdmin_AlreadyConnected',_}}, - 'CosEventChannelAdmin_ProxyPullConsumer':connect_pull_supplier(PPullC, PullS)), - - - catch corba:dispose(AC), - %% Wait a couple of seconds to be sure all data removed from DB. - timer:sleep(2000), - - %% Since we terminated ConsumerAdmin only the Supplier Proxies should be terminated. - ?match(true, corba_object:non_existent(AC)), - ?match(true, corba_object:non_existent(PPushS)), - ?match(true, corba_object:non_existent(PPullS)), - - ?match(false, corba_object:non_existent(Ch)), - ?match(false, corba_object:non_existent(AS)), - ?match(false, corba_object:non_existent(PPullC)), - ?match(false, corba_object:non_existent(PPushC)), - - %% Terminate a proxy and check that its admin is unaffected. - catch corba:dispose(PPullC), - timer:sleep(2000), - ?match(false, corba_object:non_existent(AS)), - ?match(true, corba_object:non_existent(PPullC)), - - catch corba:dispose(Ch), - timer:sleep(2000), - - ?match(true, corba_object:non_existent(Ch)), - ?match(true, corba_object:non_existent(AS)), - ?match(true, corba_object:non_existent(PPullC)), - ?match(true, corba_object:non_existent(PPushC)), - - %% The client should be notified; wait for a couple of seconds and check it. - timer:sleep(2000), - ?match(true, corba_object:non_existent(PushC)), - ?match(true, corba_object:non_existent(PullC)), - ?match(true, corba_object:non_existent(PushS)), - ?match(true, corba_object:non_existent(PullS)), - - ok. - -%% Testing the CosEvent API for sending events asynchronous -events_api(_Config) -> - - Ch = ?match({_,key,_,_,_,_}, cosEventApp:start_channel([{typecheck, true}, - {pull_interval, 2}, - {blocking, false}])), - event_sender(Ch). - - -%% Testing the CosEvent API for sending events synchronous -events_sync_api(_Config) -> - - Ch = ?match({_,key,_,_,_,_}, cosEventApp:start_channel([{typecheck, true}, - {pull_interval, 2}, - {blocking, true}])), - event_sender(Ch). - -event_sender(Ch) -> - Event1 = #any{typecode=tk_long, value = 1}, - Event2 = #any{typecode=tk_long, value = 2}, - Event3 = #any{typecode=tk_long, value = 3}, - Event4 = #any{typecode=tk_long, value = 4}, - Event5 = #any{typecode=tk_long, value = 5}, - Event6 = #any{typecode=tk_long, value = 6}, - - AC=?match({_,key,_,_,_,_}, - 'CosEventChannelAdmin_EventChannel':for_consumers(Ch)), - AS=?match({_,key,_,_,_,_}, - 'CosEventChannelAdmin_EventChannel':for_suppliers(Ch)), - - PPushS=?match({_,key,_,_,_,_}, - 'CosEventChannelAdmin_ConsumerAdmin':obtain_push_supplier(AC)), - PPullS=?match({_,key,_,_,_,_}, - 'CosEventChannelAdmin_ConsumerAdmin':obtain_pull_supplier(AC)), - - PPushC=?match({_,key,_,_,_,_}, - 'CosEventChannelAdmin_SupplierAdmin':obtain_push_consumer(AS)), - PPullC=?match({_,key,_,_,_,_}, - 'CosEventChannelAdmin_SupplierAdmin':obtain_pull_consumer(AS)), - - PushC=?match({_,key,_,_,_,_}, 'event_test_PushC':oe_create([])), - PullC=?match({_,key,_,_,_,_}, 'event_test_PullC':oe_create(PPullS)), - - PushS=?match({_,key,_,_,_,_}, 'event_test_PushS':oe_create(PPushC)), - - PullS=?match({_,key,_,_,_,_}, 'event_test_PullS':oe_create([])), - - ?match(ok, 'CosEventChannelAdmin_ProxyPushSupplier':connect_push_consumer(PPushS, PushC)), - ?match(ok, 'CosEventChannelAdmin_ProxyPullSupplier':connect_pull_consumer(PPullS, PullC)), - ?match(ok, 'CosEventChannelAdmin_ProxyPushConsumer':connect_push_supplier(PPushC, PushS)), - ?match(ok, 'CosEventChannelAdmin_ProxyPullConsumer':connect_pull_supplier(PPullC, PullS)), - - %% No events should be available at the consumer side at this point. - ?match({_, false}, event_test_PullC:do_try_pull(PullC)), - ?match([], event_test_PushC:get_data(PushC)), - - %% Push an event and wait to be sure it have reached the destination. - ?match(ok, event_test_PushS:do_push(PushS, Event1)), - ?match(ok, event_test_PushS:do_push(PushS, Event2)), - ?match(ok, event_test_PushS:do_push(PushS, Event3)), - timer:sleep(2000), - ?match({Event1, true}, event_test_PullC:do_try_pull(PullC)), - ?match({Event2, true}, event_test_PullC:do_try_pull(PullC)), - ?match({Event3, true}, event_test_PullC:do_try_pull(PullC)), - ?match({_, false}, event_test_PullC:do_try_pull(PullC)), - ?match([Event1, Event2, Event3], event_test_PushC:get_data(PushC)), - - ?match(ok, event_test_PullS:add_event(PullS, Event4)), - ?match(ok, event_test_PullS:add_event(PullS, Event5)), - ?match(ok, event_test_PullS:add_event(PullS, Event6)), - - %% Since the pull operation is blocking we do not need to "sleep". - %% The ProxyPullConsumer will pull for events according to the pull_interval - %% parameter given when started the channel. - ?match(Event4, event_test_PullC:do_pull(PullC)), - ?match(Event5, event_test_PullC:do_pull(PullC)), - ?match(Event6, event_test_PullC:do_pull(PullC)), - - timer:sleep(2000), - ?match([Event4, Event5, Event6], event_test_PushC:get_data(PushC)), - - - catch corba:dispose(Ch), - %% The client should be notified; wait for a couple of seconds and check it. - timer:sleep(2000), - ?match(true, corba_object:non_existent(PushC)), - ?match(true, corba_object:non_existent(PullC)), - ?match(true, corba_object:non_existent(PushS)), - ?match(true, corba_object:non_existent(PullS)), - - ok. |