From 11a878bb0c35a47e7ccbc1c0f10194aac49f25a5 Mon Sep 17 00:00:00 2001
From: Siri Hansen <siri@erlang.org>
Date: Mon, 21 Mar 2011 17:50:02 +0100
Subject: Allow app_file option to be keep | strip | all, as documented

This is the correction of the bug not allowing the values 'strip' or
'all' for the app_file option in reltool.
---
 lib/reltool/src/reltool_server.erl        |  2 +-
 lib/reltool/test/reltool_server_SUITE.erl | 34 ++++++++++++++++++++++++++++++-
 2 files changed, 34 insertions(+), 2 deletions(-)

(limited to 'lib/reltool')

diff --git a/lib/reltool/src/reltool_server.erl b/lib/reltool/src/reltool_server.erl
index d7cad8b29e..9743289ca6 100644
--- a/lib/reltool/src/reltool_server.erl
+++ b/lib/reltool/src/reltool_server.erl
@@ -1318,7 +1318,7 @@ decode(#sys{} = Sys, [{Key, Val} | KeyVals], Status) ->
 				   Val =:= none;
 				   Val =:= undefined ->
                 {Sys#sys{embedded_app_type = Val}, Status};
-            app_file when Val =:= keep; Val =:= strip, Val =:= all ->
+            app_file when Val =:= keep; Val =:= strip; Val =:= all ->
                 {Sys#sys{app_file = Val}, Status};
             debug_info when Val =:= keep; Val =:= strip ->
                 {Sys#sys{debug_info = Val}, Status};
diff --git a/lib/reltool/test/reltool_server_SUITE.erl b/lib/reltool/test/reltool_server_SUITE.erl
index ef3076f305..b77560db94 100644
--- a/lib/reltool/test/reltool_server_SUITE.erl
+++ b/lib/reltool/test/reltool_server_SUITE.erl
@@ -52,7 +52,8 @@ suite() -> [{ct_hooks,[ts_install_cth]}].
 all() -> 
     [start_server, set_config, create_release,
      create_script, create_target, create_embedded,
-     create_standalone, create_old_target].
+     create_standalone, create_old_target,
+     otp_9135].
 
 groups() -> 
     [].
@@ -109,6 +110,37 @@ set_config(_Config) ->
     ?m(ok, reltool:stop(Pid)),
     ok.
 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% OTP-9135, test that app_file option can be set to all | keep | strip
+
+otp_9135(TestInfo) when is_atom(TestInfo) -> 
+    reltool_test_lib:tc_info(TestInfo);
+otp_9135(_Config) ->
+    Libs = lists:sort(erl_libs()),
+    StrippedDefaultSys = 
+        case Libs of
+            [] -> [];
+            _  -> {lib_dirs, Libs}
+        end,
+    
+    Config1 = {sys,[{app_file, keep}]}, % this is the default
+    {ok, Pid1} = ?msym({ok, _}, reltool:start_server([{config, Config1}])),
+    ?m({ok, {sys,StrippedDefaultSys}}, reltool:get_config(Pid1)),
+    ?m(ok, reltool:stop(Pid1)),
+       
+    Config2 = {sys,[{app_file, strip}]},
+    {ok, Pid2} = ?msym({ok, _}, reltool:start_server([{config, Config2}])),
+    ExpectedConfig2 = StrippedDefaultSys++[{app_file,strip}],
+    ?m({ok, {sys,ExpectedConfig2}}, reltool:get_config(Pid2)),
+    ?m(ok, reltool:stop(Pid2)),
+
+    Config3 = {sys,[{app_file, all}]},
+    {ok, Pid3} = ?msym({ok, _}, reltool:start_server([{config, Config3}])),
+    ExpectedConfig3 = StrippedDefaultSys++[{app_file,all}],
+    ?m({ok, {sys,ExpectedConfig3}}, reltool:get_config(Pid3)),
+    ?m(ok, reltool:stop(Pid3)),
+    ok.
+
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %% Generate releases
 
-- 
cgit v1.2.3