From 3a3d74963a8447a0aa7becddf85d4095dd00d4cd Mon Sep 17 00:00:00 2001 From: Siri Hansen Date: Thu, 27 Jun 2019 17:11:48 +0200 Subject: [ct] Store correct paths with from-release in ct_release_test In opaque data given to callback module, the paths to application lib dirs were faulty for the release to upgrade from. This is now corrected. --- lib/common_test/src/ct_release_test.erl | 22 +++++++++++----------- .../release_test_SUITE.erl | 4 +++- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/lib/common_test/src/ct_release_test.erl b/lib/common_test/src/ct_release_test.erl index ac3dcab7c9..839fb300c7 100644 --- a/lib/common_test/src/ct_release_test.erl +++ b/lib/common_test/src/ct_release_test.erl @@ -475,7 +475,7 @@ fetch_all_apps(Node) -> A = list_to_atom(filename:basename(filename:rootname(F))), _ = rpc:call(Node,application,load,[A]), case rpc:call(Node,application,get_key,[A,vsn]) of - {ok,V} -> [{A,V}]; + {ok,V} -> [{A,V,rpc:call(Node,code,lib_dir,[A])}]; _ -> [] end end, @@ -517,7 +517,7 @@ upgrade(Apps,Level,Callback,CreateDir,InstallDir,Config) -> target_system(Apps,CreateDir,InstallDir,{FromVsn,_,AllAppsVsns,Path}) -> RelName0 = "otp-"++FromVsn, - AppsVsns = [{A,V} || {A,V} <- AllAppsVsns, lists:member(A,Apps)], + AppsVsns = [{A,V,D} || {A,V,D} <- AllAppsVsns, lists:member(A,Apps)], {RelName,ErtsVsn} = create_relfile(AppsVsns,CreateDir,RelName0,FromVsn), %% Create .script and .boot @@ -636,8 +636,7 @@ do_upgrade({Cb,InitState},FromVsn,FromAppsVsns,ToRel,ToAppsVsns,InstallDir) -> {ok,Node} = start_node(Start,FromVsn,FromAppsVsns), ct:log("Node started: ~p",[Node]), - CtData = #ct_data{from = [{A,V,code:lib_dir(A)} || {A,V} <- FromAppsVsns], - to=[{A,V,code:lib_dir(A)} || {A,V} <- ToAppsVsns]}, + CtData = #ct_data{from = FromAppsVsns,to=ToAppsVsns}, State1 = do_callback(Node,Cb,upgrade_init,[CtData,InitState]), [{"OTP upgrade test",FromVsn,_,permanent}] = @@ -724,14 +723,14 @@ previous_major(Rel) -> integer_to_list(list_to_integer(Rel)-1). create_relfile(AppsVsns,CreateDir,RelName0,RelVsn) -> - UpgradeAppsVsns = [{A,V,restart_type(A)} || {A,V} <- AppsVsns], + UpgradeAppsVsns = [{A,V,restart_type(A)} || {A,V,_D} <- AppsVsns], CoreAppVsns0 = get_vsns([kernel,stdlib,sasl]), CoreAppVsns = - [{A,V,restart_type(A)} || {A,V} <- CoreAppVsns0, + [{A,V,restart_type(A)} || {A,V,_D} <- CoreAppVsns0, false == lists:keymember(A,1,AppsVsns)], - Apps = [App || {App,_} <- AppsVsns], + Apps = [App || {App,_,_} <- AppsVsns], StartDepsVsns = get_start_deps(Apps,CoreAppVsns), StartApps = [StartApp || {StartApp,_,_} <- StartDepsVsns] ++ Apps, @@ -744,7 +743,7 @@ create_relfile(AppsVsns,CreateDir,RelName0,RelVsn) -> %% processes of these applications will not be running. TestToolAppsVsns0 = get_vsns([common_test]), TestToolAppsVsns = - [{A,V,none} || {A,V} <- TestToolAppsVsns0, + [{A,V,none} || {A,V,_D} <- TestToolAppsVsns0, false == lists:keymember(A,1,AllAppsVsns0)], AllAppsVsns1 = AllAppsVsns0 ++ TestToolAppsVsns, @@ -766,7 +765,7 @@ get_vsns(Apps) -> [begin _ = application:load(A), {ok,V} = application:get_key(A,vsn), - {A,V} + {A,V,code:lib_dir(A)} end || A <- Apps]. get_start_deps([App|Apps],Acc) -> @@ -880,8 +879,9 @@ start_node(Start,ExpVsn,ExpAppsVsns) -> erlang:port_close(Port), wait_node_up(permanent,ExpVsn,ExpAppsVsns). -wait_node_up(ExpStatus,ExpVsn,ExpAppsVsns) -> +wait_node_up(ExpStatus,ExpVsn,ExpAppsVsns0) -> Node = node_name(?testnode), + ExpAppsVsns = [{A,V} || {A,V,_D} <- ExpAppsVsns0], wait_node_up(Node,ExpStatus,ExpVsn,lists:keysort(1,ExpAppsVsns),60). wait_node_up(Node,ExpStatus,ExpVsn,ExpAppsVsns,0) -> @@ -893,7 +893,7 @@ wait_node_up(Node,ExpStatus,ExpVsn,ExpAppsVsns,N) -> rpc:call(Node, application, which_applications, [])} of {[{_,ExpVsn,_,_}],Apps} when is_list(Apps) -> case [{A,V} || {A,_,V} <- lists:keysort(1,Apps), - lists:keymember(A,1,ExpAppsVsns)] of + lists:keymember(A,1,ExpAppsVsns)] of ExpAppsVsns -> {ok,Node}; _ -> diff --git a/lib/common_test/test/ct_release_test_SUITE_data/release_test_SUITE.erl b/lib/common_test/test/ct_release_test_SUITE_data/release_test_SUITE.erl index 7f0ba65791..fe69ad0748 100644 --- a/lib/common_test/test/ct_release_test_SUITE_data/release_test_SUITE.erl +++ b/lib/common_test/test/ct_release_test_SUITE_data/release_test_SUITE.erl @@ -47,7 +47,9 @@ end_per_suite(_Config) -> init_per_testcase(major_fail_no_init, Config) -> Config; init_per_testcase(_Case, Config) -> - ct_release_test:init(Config). + Config1 = ct_release_test:init(Config), + ct:log("ct_release_test:init/1 returned:~n~p",[Config1]), + Config1. end_per_testcase(_Case, Config) -> ct_release_test:cleanup(Config). -- cgit v1.2.3