diff options
Diffstat (limited to 'lib/orber/test/orber_SUITE.erl')
-rw-r--r-- | lib/orber/test/orber_SUITE.erl | 213 |
1 files changed, 0 insertions, 213 deletions
diff --git a/lib/orber/test/orber_SUITE.erl b/lib/orber/test/orber_SUITE.erl deleted file mode 100644 index 75da31bc5f..0000000000 --- a/lib/orber/test/orber_SUITE.erl +++ /dev/null @@ -1,213 +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(orber_SUITE). --include_lib("common_test/include/ct.hrl"). - --define(default_timeout, test_server:minutes(15)). --define(application, orber). - -% Test server specific exports --export([all/0, suite/0,groups/0,init_per_suite/1, end_per_suite/1, - init_per_group/2,end_per_group/2]). --export([init_per_testcase/2, end_per_testcase/2]). - -% Test cases must be exported. --export([app_test/1, undefined_functions/1, install_load_order/1, - install_local_content/1, - otp_9887/1]). - -%% Exporting error handler callbacks for use in otp_9887 --export([init/1, handle_event/2]). - -%% -%% all/1 -%% -suite() -> [{ct_hooks,[ts_install_cth]}]. - -all() -> - [app_test, undefined_functions, install_load_order, - install_local_content, - otp_9887]. - -groups() -> - []. - -init_per_suite(Config) -> - Config. - -end_per_suite(_Config) -> - ok. - -init_per_group(_GroupName, Config) -> - Config. - -end_per_group(_GroupName, Config) -> - Config. - - -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. - -% -% Test cases starts here. -% -app_test(_Config) -> - ok=test_server:app_test(orber), - ok. - -otp_9887(_Config) -> - orber:jump_stop(), - application:set_env(orber, orber_debug_level, 10), - orber:jump_start([]), - - mnesia:create_table(orber_light_ifr, []), - - error_logger:add_report_handler(?MODULE,[self()]), - catch orber_ifr:get_module(foo, bar), - - receive - {stolen,Reason} -> - {error,_Pid1, {_Pid2, _ErrorString, ArgumentList}} = Reason, - 5 = length(ArgumentList) - after 500 -> - test_server:fail("OTP_9887 TIMED OUT") - end, - - orber:jump_stop(), - ok. - -%% Install Orber using the load_order option. -install_load_order(_Config) -> - orber:jump_stop(), - case catch install_load_order2() of - ok -> - orber:jump_stop(); - What -> - orber:jump_stop(), - exit(What) - end. - -install_load_order2() -> - application:load(orber), - mnesia:start(), - corba:orb_init([{iiop_port, 0}]), - orber:install([node()], [{ifr_storage_type, ram_copies}, - {load_order, 10}]), - orber:start(), - [H|_] = orber:get_tables(), - 10 = mnesia:table_info(H, load_order), - ok. - -%% Install Orber using the local_content option. -install_local_content(_Config) -> - orber:jump_stop(), - case catch install_local_content2() of - ok -> - orber:jump_stop(); - What -> - orber:jump_stop(), - exit(What) - end. - -install_local_content2() -> - application:load(orber), - mnesia:start(), - corba:orb_init([{iiop_port, 0}]), - orber:install([node()], [{ifr_storage_type, ram_copies}, - {local_content, true}]), - orber:start(), - [H|_] = orber:get_tables(), - true = mnesia:table_info(H, local_content), - ok. - - - -%% Check for undefined functions -undefined_functions(_Config) -> - App = orber, - Root = code:root_dir(), - LibDir = code:lib_dir(App), - EbinDir = filename:join([LibDir,"ebin"]), - AppFilePath = filename:join([LibDir,"ebin", "orber.app"]), - {ok, [{application,orber,AppFile}]} = file:consult(AppFilePath), - io:format("Using ~p~n~p~n", [AppFilePath, AppFile]), - Mods = key1search(modules, AppFile), - XRefTestName = undef_funcs_make_name(App, xref_test_name), - {ok, XRef} = xref:start(XRefTestName), - ok = xref:set_default(XRef, - [{verbose,false},{warnings,false}]), - XRefName = undef_funcs_make_name(App, xref_name), - {ok, XRefName} = xref:add_release(XRef, Root, {name,XRefName}), - {ok, App} = xref:replace_application(XRef, App, EbinDir), - {ok, Undefs} = xref:analyze(XRef, undefined_function_calls), - xref:stop(XRef), - analyze_undefined_function_calls(Undefs, Mods, []). - -analyze_undefined_function_calls([], _, []) -> - ok; -analyze_undefined_function_calls([], _, AppUndefs) -> - exit({suite_failed, {undefined_function_calls, AppUndefs}}); -analyze_undefined_function_calls([{{Mod, _F, _A}, _C} = AppUndef|Undefs], - AppModules, AppUndefs) -> - %% Check that this module is our's - case lists:member(Mod,AppModules) of - true -> - {Calling,Called} = AppUndef, - {Mod1,Func1,Ar1} = Calling, - {Mod2,Func2,Ar2} = Called, - io:format("undefined function call: " - "~n ~w:~w/~w calls ~w:~w/~w~n", - [Mod1,Func1,Ar1,Mod2,Func2,Ar2]), - analyze_undefined_function_calls(Undefs, AppModules, - [AppUndef|AppUndefs]); - false -> - io:format("dropping ~p~n", [Mod]), - analyze_undefined_function_calls(Undefs, AppModules, AppUndefs) - end. - -%% This function is used simply to avoid cut-and-paste errors later... -undef_funcs_make_name(App, PostFix) -> - list_to_atom(atom_to_list(App) ++ "_" ++ atom_to_list(PostFix)). - -key1search(Key, L) -> - case lists:keysearch(Key, 1, L) of - false -> - fail({not_found, Key, L}); - {value, {Key, Value}} -> - Value - end. - -fail(Reason) -> - exit({suite_failed, Reason}). - -%% Error handler - -init([Proc]) -> {ok,Proc}. - -handle_event(Event, Proc) -> - Proc ! {stolen,Event}, - {ok,Proc}. |