diff options
Diffstat (limited to 'lib/orber/test/naming_context_SUITE.erl')
-rw-r--r-- | lib/orber/test/naming_context_SUITE.erl | 390 |
1 files changed, 0 insertions, 390 deletions
diff --git a/lib/orber/test/naming_context_SUITE.erl b/lib/orber/test/naming_context_SUITE.erl deleted file mode 100644 index 2afede287a..0000000000 --- a/lib/orber/test/naming_context_SUITE.erl +++ /dev/null @@ -1,390 +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% -%% -%% -%%----------------------------------------------------------------- -%% -%% Description: -%% Test suite for Name service -%% -%%----------------------------------------------------------------- --module(naming_context_SUITE). - --include_lib("common_test/include/ct.hrl"). --include_lib("orber/COSS/CosNaming/CosNaming.hrl"). --include_lib("orber/src/orber_iiop.hrl"). --include_lib("orber/include/corba.hrl"). - --define(default_timeout, test_server:minutes(5)). - -%%----------------------------------------------------------------- -%% External exports -%%----------------------------------------------------------------- --export([all/0, suite/0,groups/0,init_per_group/2,end_per_group/2]). - -%%----------------------------------------------------------------- -%% Internal exports -%%----------------------------------------------------------------- - --export([name_context/1, check_list/1, name_context_ext/1]). - --export([init_per_suite/1, end_per_suite/1, init_per_testcase/2, - end_per_testcase/2]). - - -%%----------------------------------------------------------------- -%% Macros -%%----------------------------------------------------------------- --define(REMAP_EXCEPT(F), case catch F of - {'EXCEPTION', E} -> exit(E); - {'EXIT', E} -> exit(E); - R -> R - end). - --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()). - -%%----------------------------------------------------------------- -%% Func: all/1 -%% Args: -%% Returns: -%%----------------------------------------------------------------- -suite() -> [{ct_hooks,[ts_install_cth]}]. - -all() -> - cases(). - -groups() -> - []. - -init_per_group(_GroupName, Config) -> - Config. - -end_per_group(_GroupName, Config) -> - Config. - - -cases() -> - [name_context, check_list, name_context_ext]. - -%%----------------------------------------------------------------- -%% Init and cleanup functions. -%%----------------------------------------------------------------- - -init_per_testcase(_Case, Config) -> - Path = code:which(?MODULE), - code:add_pathz(filename:join(filename:dirname(Path), "idl_output")), - Dog=test_server:timetrap(?default_timeout), - orber:jump_start(0), - [{watchdog, Dog}|Config]. - - -end_per_testcase(_Case, Config) -> - Path = code:which(?MODULE), - code:del_path(filename:join(filename:dirname(Path), "idl_output")), - orber:jump_stop(), - Dog = proplists:get_value(watchdog, Config), - test_server:timetrap_cancel(Dog), - ok. - -init_per_suite(Config) -> - Config. - -end_per_suite(Config) -> - Config. - -%%----------------------------------------------------------------- -%% Test Case: name handling tests -%% Description: -%%----------------------------------------------------------------- -name_context(_) -> - ?REMAP_EXCEPT(name_context_run()). - -name_context_run() -> - Ns = corba:resolve_initial_references("NameService"), - - ?match({'EXCEPTION', #'NO_PERMISSION'{}}, - 'CosNaming_NamingContextExt':destroy(Ns)), - - %% Create a test context. - Tc = 'CosNaming_NamingContext':bind_new_context(Ns, - [#'CosNaming_NameComponent'{id="testcontext", - kind=""}]), - %% Start testing - 'CosNaming_NamingContext':bind(Tc, [#'CosNaming_NameComponent' - {id="hej", - kind=""}], Ns), - Ns = 'CosNaming_NamingContext':resolve(Tc, - [#'CosNaming_NameComponent'{id="hej", - kind=""}]), - Nc = 'CosNaming_NamingContext':new_context(Tc), - 'CosNaming_NamingContext':bind(Tc, [#'CosNaming_NameComponent' - {id="stop", - kind=""}], Nc), - Nc = 'CosNaming_NamingContext':resolve(Tc, - [#'CosNaming_NameComponent'{id="stop", - kind=""}]), - {'EXCEPTION', E0} = - (catch 'CosNaming_NamingContext':bind(Tc, - [#'CosNaming_NameComponent'{id="stop", - kind=""}], Ns)), - ok = 'CosNaming_NamingContext':rebind(Tc, - [#'CosNaming_NameComponent'{id="stop", - kind=""}], Ns), - {'CosNaming_NamingContext_AlreadyBound', _} = E0, - 'CosNaming_NamingContext':bind_context(Tc, - [#'CosNaming_NameComponent'{id="evaluate", - kind=""}], Nc), - Nc = - 'CosNaming_NamingContext':resolve(Tc, - [#'CosNaming_NameComponent'{id="evaluate", - kind=""}]), - 'CosNaming_NamingContext':bind(Tc, - [#'CosNaming_NameComponent'{id="evaluate", - kind=""}, - #'CosNaming_NameComponent'{id="hej", - kind=""}], Ns), - ok = 'CosNaming_NamingContext':rebind(Tc, - [#'CosNaming_NameComponent'{id="evaluate", - kind=""}, - #'CosNaming_NameComponent'{id="hej", - kind=""}], Ns), - Ns = 'CosNaming_NamingContext':resolve(Tc, - [#'CosNaming_NameComponent'{id="evaluate", - kind=""}, - #'CosNaming_NameComponent'{id="hej", - kind=""}]), - {'EXCEPTION', E1} = - (catch 'CosNaming_NamingContext':resolve(Tc, - [#'CosNaming_NameComponent'{id="stop", - kind=""}, - #'CosNaming_NameComponent'{id="hej", - kind=""}])), - ?match(ok, orber_diagnostics:nameservice()), - - {'CosNaming_NamingContext_CannotProceed', _,_,_} = E1, - {'EXCEPTION', E2} = (catch 'CosNaming_NamingContext':destroy(Nc)), - {'CosNaming_NamingContext_NotEmpty', _} = E2, - ok = 'CosNaming_NamingContext':unbind(Tc, - [#'CosNaming_NameComponent'{id="evaluate", - kind=""}, - #'CosNaming_NameComponent'{id="hej", - kind=""}]), - ok = 'CosNaming_NamingContext':destroy(Nc), - ok = 'CosNaming_NamingContext':unbind(Tc, - [#'CosNaming_NameComponent'{id="evaluate", - kind=""}]), - ok = 'CosNaming_NamingContext':unbind(Tc, - [#'CosNaming_NameComponent'{id="stop", - kind=""}]), - ok = 'CosNaming_NamingContext':unbind(Tc, - [#'CosNaming_NameComponent'{id="hej", - kind=""}]), - case 'CosNaming_NamingContext':list(Tc, 3) of - {ok, [], ?ORBER_NIL_OBJREF} -> - ok; - _ -> - exit(not_empty) - end, - ok = 'CosNaming_NamingContext':unbind(Ns, - [#'CosNaming_NameComponent'{id="testcontext", - kind=""}]), - ok = 'CosNaming_NamingContext':destroy(Tc), - ok. - - - -%% Check that the CosNaming::NamingContext::list() returns ok. -%% Own Id: OTP-2023 -check_list(Config) when is_list(Config) -> - ?REMAP_EXCEPT(check_list_run(Config)). - -check_list_run(_Config) -> - create_default_contexts(), - Ns = corba:resolve_initial_references("NameService"), - {_, BL, _} = ?match({ok, _, ?ORBER_NIL_OBJREF}, - 'CosNaming_NamingContext':list(Ns, 256)), - - FF = fun(X) -> XX = hd(X#'CosNaming_Binding'.binding_name), - XX#'CosNaming_NameComponent'.id end, - - L = lists:sort(lists:map(FF, BL)), - ["host", "workgroup"] = L, - - %% Test next_n/2 - {_, _, BI} = ?match({ok, [], _BI}, 'CosNaming_NamingContext':list(Ns, 0)), - ?match({true, []}, 'CosNaming_BindingIterator':next_n(BI, 0)), - ?match({true, [_]}, 'CosNaming_BindingIterator':next_n(BI, 1)), - ?match({false, [_]}, 'CosNaming_BindingIterator':next_n(BI, 1)), - ?match({false, []}, 'CosNaming_BindingIterator':next_n(BI, 1)), - ?match(ok, 'CosNaming_BindingIterator':destroy(BI)), - - {_, _, BI2} = ?match({ok, [], _BI2}, 'CosNaming_NamingContext':list(Ns, 0)), - ?match({true, _}, 'CosNaming_BindingIterator':next_one(BI2)), - ?match({true, _}, 'CosNaming_BindingIterator':next_one(BI2)), - ?match({false, _}, 'CosNaming_BindingIterator':next_one(BI2)), - ?match(ok, 'CosNaming_BindingIterator':destroy(BI2)), - ?match(ok, orber_diagnostics:nameservice()), - ok. - -create_default_contexts() -> - HostComponent = lname_component:set_id(lname_component:create(), - "host"), - HostsComponent = lname_component:set_id(lname_component:create(), - "hosts"), - ResourcesComponent = lname_component:set_id(lname_component:create(), - "resources"), - DevelopmentComponent = lname_component:set_id(lname_component:create(), - "development"), - FactoriesComponent = lname_component:set_id(lname_component:create(), - "factories"), - WGComponent = lname_component:set_id(lname_component:create(), - "workgroup"), - %% Creation of Naming Context host and it's subcontexts - NS = corba:resolve_initial_references("NameService"), - H = 'CosNaming_NamingContext':bind_new_context(NS, - lname:insert_component(lname:create(), 1, HostComponent)), - HR = 'CosNaming_NamingContext':bind_new_context(H, - lname:insert_component(lname:create(), 1, ResourcesComponent)), - 'CosNaming_NamingContext':bind_new_context(HR, - lname:insert_component(lname:create(), 1, FactoriesComponent)), - HD = 'CosNaming_NamingContext':bind_new_context(H, - lname:insert_component(lname:create(), 1, DevelopmentComponent)), - HDR = 'CosNaming_NamingContext':bind_new_context(HD, - lname:insert_component(lname:create(), 1, ResourcesComponent)), - 'CosNaming_NamingContext':bind_new_context(HDR, - lname:insert_component(lname:create(), 1, FactoriesComponent)), - %% Creation of Naming Context workgroup and it's subcontexts - W = 'CosNaming_NamingContext':bind_new_context(NS, - lname:insert_component(lname:create(), 1, WGComponent)), - 'CosNaming_NamingContext':bind_new_context(W, - lname:insert_component(lname:create(), 1, HostsComponent)), - WR = 'CosNaming_NamingContext':bind_new_context(W, - lname:insert_component(lname:create(), 1, ResourcesComponent)), - 'CosNaming_NamingContext':bind_new_context(WR, - lname:insert_component(lname:create(), 1, FactoriesComponent)), - WD = 'CosNaming_NamingContext':bind_new_context(W, - lname:insert_component(lname:create(), 1, DevelopmentComponent)), - WDR = 'CosNaming_NamingContext':bind_new_context(WD, - lname:insert_component(lname:create(), 1, ResourcesComponent)), - 'CosNaming_NamingContext':bind_new_context(WDR, - lname:insert_component(lname:create(), 1, FactoriesComponent)), - ok. - -%%----------------------------------------------------------------- -%% Test Case: -%% Description: -%%----------------------------------------------------------------- -name_context_ext(_Config) -> - ?REMAP_EXCEPT(name_context_ext_run()). - -name_context_ext_run() -> - NS = ?match({_,pseudo,_, _,_, _}, - corba:resolve_initial_references("NameService")), - - Name1 = [#'CosNaming_NameComponent'{id="\\<id1\\>", kind="kind1"}, - #'CosNaming_NameComponent'{id="id2", kind="kind2"}], - String1 = "\\<id1\\>.kind1/id2.kind2", - Name2 = [#'CosNaming_NameComponent'{id="id1", kind=""}, - #'CosNaming_NameComponent'{id="id2", kind=""}, - #'CosNaming_NameComponent'{id="id3", kind=""}], - String2 = "id1/id2/id3", - Name3 = [#'CosNaming_NameComponent'{id="id1", kind="kind1"}, - #'CosNaming_NameComponent'{id="", kind=""}, - #'CosNaming_NameComponent'{id="id3", kind="kind3"}], - String3 = "id1.kind1/./id3.kind3", - Name4 = [#'CosNaming_NameComponent'{id="id1", kind="kind1"}, - #'CosNaming_NameComponent'{id="i.d.2", kind="kind2"}, - #'CosNaming_NameComponent'{id="id3", kind="kind3"}], - String4 = "id1.kind1/i\\.d\\.2.kind2/id3.kind3", - Name5 = [#'CosNaming_NameComponent'{id="id1", kind=""}, - #'CosNaming_NameComponent'{id="i/d/2", kind="kind2"}, - #'CosNaming_NameComponent'{id="id3", kind=""}], - String5 = "id1/i\\/d\\/2.kind2/id3", - - BadString1 = "id1./id2/id3", - BadString2 = "id1//id3", - - ?match(String1, 'CosNaming_NamingContextExt':to_string(NS, Name1)), - ?match(String2, 'CosNaming_NamingContextExt':to_string(NS, Name2)), - ?match(String3, 'CosNaming_NamingContextExt':to_string(NS, Name3)), - ?match(String4, 'CosNaming_NamingContextExt':to_string(NS, Name4)), - ?match(String5, 'CosNaming_NamingContextExt':to_string(NS, Name5)), - ?match(Name1, 'CosNaming_NamingContextExt':to_name(NS, String1)), - ?match(Name2, 'CosNaming_NamingContextExt':to_name(NS, String2)), - ?match(Name3, 'CosNaming_NamingContextExt':to_name(NS, String3)), - ?match(Name4, 'CosNaming_NamingContextExt':to_name(NS, String4)), - ?match(Name5, 'CosNaming_NamingContextExt':to_name(NS, String5)), - - ?match({'EXCEPTION', {'CosNaming_NamingContext_InvalidName',_}}, - 'CosNaming_NamingContextExt':to_name(NS, BadString1)), - ?match({'EXCEPTION', {'CosNaming_NamingContext_InvalidName',_}}, - 'CosNaming_NamingContextExt':to_name(NS, BadString2)), - - %% Create a test context. - Tc = ?match({_,pseudo,_, _,_, _}, - 'CosNaming_NamingContext':bind_new_context(NS, - [#'CosNaming_NameComponent'{id="testcontext", - kind=""}])), - ?match(ok, 'CosNaming_NamingContext':bind(Tc, [#'CosNaming_NameComponent' - {id="hej", - kind=""}], NS)), - - ?match(NS, 'CosNaming_NamingContextExt':resolve_str(Tc, "hej")), - - ?match("corbaloc:rir:", 'CosNaming_NamingContextExt':to_url(Tc, "rir:", "")), - ?match("corbaname:rir:/NameService#org/erlang/", - 'CosNaming_NamingContextExt':to_url(Tc, "rir:/NameService", "org/erlang/")), - ?match("corbaloc::1.1@555%3cxyz.com:9999/Dev/NameService", - 'CosNaming_NamingContextExt':to_url(Tc, ":1.1@555\\<xyz.com:9999/Dev/NameService", "")), - - %% Bad port - ?match({'EXCEPTION', {'CosNaming_NamingContextExt_InvalidAddress',_}}, - 'CosNaming_NamingContextExt':to_url(Tc, ":[email protected]:99a9/", "")), - %% BAd IIOP-version - ?match({'EXCEPTION', {'CosNaming_NamingContextExt_InvalidAddress',_}}, - 'CosNaming_NamingContextExt':to_url(Tc, ":[email protected]:99a9/", "")), - %% Bad IIOP-version - ?match({'EXCEPTION', {'CosNaming_NamingContextExt_InvalidAddress',_}}, - 'CosNaming_NamingContextExt':to_url(Tc, ":@555xyz.com:99a9/", "")), - %% Bad protocol - ?match({'EXCEPTION', {'CosNaming_NamingContextExt_InvalidAddress',_}}, - 'CosNaming_NamingContextExt':to_url(Tc, "iop:@555xyz.com:99a9/", "")), - %% Unsupported protocol - ?match({'EXCEPTION', {'CosNaming_NamingContextExt_InvalidAddress',_}}, - 'CosNaming_NamingContextExt':to_url(Tc, "atm:@555xyz.com:9999/", "")), - %% Bad Name - ?match({'EXCEPTION', {'CosNaming_NamingContext_InvalidName',_}}, - 'CosNaming_NamingContextExt':to_url(Tc, ":555xyz.com:9999/", "id1./id2.kind2")), - - ok. - - |