diff options
Diffstat (limited to 'lib/stdlib/test/stdlib_SUITE.erl')
| -rw-r--r-- | lib/stdlib/test/stdlib_SUITE.erl | 51 | 
1 files changed, 38 insertions, 13 deletions
| diff --git a/lib/stdlib/test/stdlib_SUITE.erl b/lib/stdlib/test/stdlib_SUITE.erl index 59821220b4..6669a21b9c 100644 --- a/lib/stdlib/test/stdlib_SUITE.erl +++ b/lib/stdlib/test/stdlib_SUITE.erl @@ -22,14 +22,7 @@  -module(stdlib_SUITE).  -include_lib("test_server/include/test_server.hrl"). - -% 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, appup_test/1]). +-compile(export_all).  %%  %% all/1 @@ -37,10 +30,10 @@  suite() -> [{ct_hooks,[ts_install_cth]}].  all() ->  -    [app_test, appup_test]. +    [app_test, appup_test, {group,upgrade}].  groups() ->  -    []. +    [{upgrade,[minor_upgrade,major_upgrade]}].  init_per_suite(Config) ->      Config. @@ -48,9 +41,13 @@ init_per_suite(Config) ->  end_per_suite(_Config) ->      ok. +init_per_group(upgrade, Config) -> +    ct_release_test:init(Config);  init_per_group(_GroupName, Config) ->      Config. +end_per_group(upgrade, Config) -> +    ct_release_test:cleanup(Config);  end_per_group(_GroupName, Config) ->      Config. @@ -78,17 +75,29 @@ appup_test(_Config) ->  appup_tests(_App,{[],[]}) ->      {skip,"no previous releases available"}; -appup_tests(App,{OkVsns,NokVsns}) -> +appup_tests(App,{OkVsns0,NokVsns}) ->      application:load(App),      {_,_,Vsn} = lists:keyfind(App,1,application:loaded_applications()),      AppupFileName = atom_to_list(App) ++ ".appup",      AppupFile = filename:join([code:lib_dir(App),ebin,AppupFileName]),      {ok,[{Vsn,UpFrom,DownTo}=AppupScript]} = file:consult(AppupFile),      ct:log("~p~n",[AppupScript]), -    ct:log("Testing ok versions: ~p~n",[OkVsns]), +    OkVsns = +	case OkVsns0 -- [Vsn] of +	    OkVsns0 -> +		OkVsns0; +	    Ok -> +		ct:log("Current version, ~p, is same as in previous release.~n" +		       "Removing this from the list of ok versions.", +		      [Vsn]), +		Ok +	end, +    ct:log("Testing that appup allows upgrade from these versions: ~p~n", +	   [OkVsns]),      check_appup(OkVsns,UpFrom,{ok,[restart_new_emulator]}),      check_appup(OkVsns,DownTo,{ok,[restart_new_emulator]}), -    ct:log("Testing not ok versions: ~p~n",[NokVsns]), +    ct:log("Testing that appup does not allow upgrade from these versions: ~p~n", +	   [NokVsns]),      check_appup(NokVsns,UpFrom,error),      check_appup(NokVsns,DownTo,error),      ok. @@ -153,3 +162,19 @@ check_appup([Vsn|Vsns],Instrs,Expected) ->      end;  check_appup([],_,_) ->      ok. + + +minor_upgrade(Config) -> +    ct_release_test:upgrade(stdlib,minor,{?MODULE,[]},Config). + +major_upgrade(Config) -> +    ct_release_test:upgrade(stdlib,major,{?MODULE,[]},Config). + +%% Version numbers are checked by ct_release_test, so there is nothing +%% more to check here... +upgrade_init(State) -> +    State. +upgrade_upgraded(State) -> +    State. +upgrade_downgraded(State) -> +    State. | 
