File 6411-ct-Remove-documentation-for-deprecated-config.patch of Package erlang

From 929a906eab3e11c0f4a8994e90b36ac02e185156 Mon Sep 17 00:00:00 2001
From: Johannes Christ <jc@jchri.st>
Date: Fri, 3 Nov 2023 17:08:30 +0100
Subject: [PATCH] ct: Remove documentation for deprecated ?config

Per dcda9b507bf and review of #7806, usage of CT's `?config` macro is no
longer recommended. Replace the documentation referencing it with
`proplists:get_value`, which works the same way and can take an optional
third argument for the default return value.
---
 .../doc/src/config_file_chapter.xml           |  8 ++--
 lib/common_test/doc/src/ct.xml                | 15 +++----
 lib/common_test/doc/src/ct_suite.xml          |  3 +-
 .../doc/src/dependencies_chapter.xml          | 40 +++++++++----------
 lib/common_test/doc/src/example_chapter.xml   | 14 +++----
 .../doc/src/write_test_chapter.xml            | 11 +++--
 6 files changed, 45 insertions(+), 46 deletions(-)

diff --git a/lib/common_test/doc/src/config_file_chapter.xml b/lib/common_test/doc/src/config_file_chapter.xml
index 2d47b143c8..2ab9259dfb 100644
--- a/lib/common_test/doc/src/config_file_chapter.xml
+++ b/lib/common_test/doc/src/config_file_chapter.xml
@@ -332,7 +332,7 @@
 
  ftptest(Config) ->
      Remote = filename:join(ct:get_config(lm_directory), "loadmodX"),
-     Local = filename:join(?config(priv_dir,Config), "loadmodule"),
+     Local = filename:join(proplists:get_value(priv_dir,Config), "loadmodule"),
      ok = ct_ftp:recv(ftp, Remote, Local),
      ...</pre>
     
@@ -347,7 +347,7 @@
 
  end_per_testcase(ftptest, Config) ->
      lists:foreach(fun(Handle) -> ct_ftp:close(Handle) end, 
-                   ?config(ftp_handles,Config)).
+                   proplists:get_value(ftp_handles,Config)).
 
  ftptest() ->
      [{require,ftp_host},
@@ -355,8 +355,8 @@
 
  ftptest(Config) ->
      Remote = filename:join(ct:get_config(lm_directory), "loadmodX"),
-     Local = filename:join(?config(priv_dir,Config), "loadmodule"),
-     [Handle | MoreHandles] = ?config(ftp_handles,Config),
+     Local = filename:join(proplists:get_value(priv_dir,Config), "loadmodule"),
+     [Handle | MoreHandles] = proplists:get_value(ftp_handles,Config),
      ok = ct_ftp:recv(Handle, Remote, Local),
      ...</pre>
       
diff --git a/lib/common_test/doc/src/ct.xml b/lib/common_test/doc/src/ct.xml
index 0d7095db5d..613ecbd05b 100644
--- a/lib/common_test/doc/src/ct.xml
+++ b/lib/common_test/doc/src/ct.xml
@@ -43,13 +43,10 @@
        tests and basic functions for <c>Common Test</c> case issues, such as
        configuration and logging.</p>
 
-     <p><em>Test Suite Support Macros</em></p> 
-
-     <p>The <c>config</c> macro is defined in <c>ct.hrl</c>. This macro is
-       to be used to retrieve information from the <c>Config</c> variable sent
-       to all test cases. It is used with two arguments; the first is the name
-       of the configuration variable to retrieve, the second is the
-       <c>Config</c> variable supplied to the test case.</p>
+     <p>The framework stores configuration values in a property list usually named
+       <c>Config</c>. The list contains information about the test run added by the
+       framework itself and may also contain user-provided values. The configuration
+       is passed into individual test cases as well as support functions if defined.</p>
 
     <p>Possible configuration variables include:</p>
 
@@ -63,6 +60,10 @@
       in the test suite.</p></item>
     </list>
 
+    <warning><p>The <c>?config</c> macro, used to receive individual config values from
+      the <c>Config</c> property list, is deprecated. Please use
+      <c>proplists:get_value/2-3</c> instead.</p></warning>
+
   </description>
 
   <datatypes>
diff --git a/lib/common_test/doc/src/ct_suite.xml b/lib/common_test/doc/src/ct_suite.xml
index 8e5a73143e..bb7e6b51f9 100644
--- a/lib/common_test/doc/src/ct_suite.xml
+++ b/lib/common_test/doc/src/ct_suite.xml
@@ -593,8 +593,7 @@
 	  (which also causes the test case process to terminate).</p>
 
 	<p>Elements from the <c>Config</c> list can, for example, be read
-	  with <c>proplists:get_value/2</c> in STDLIB
-	  (or the macro <c>?config</c> defined in <c>ct.hrl</c>).</p>
+	  with <c>proplists:get_value/2</c> in STDLIB.</p>
 
 	<p>If you decide not to run the test case after all, return
 	  <c>{skip, Reason}</c>. <c>Reason</c> is then
diff --git a/lib/common_test/doc/src/dependencies_chapter.xml b/lib/common_test/doc/src/dependencies_chapter.xml
index f5d409686e..7458533984 100644
--- a/lib/common_test/doc/src/dependencies_chapter.xml
+++ b/lib/common_test/doc/src/dependencies_chapter.xml
@@ -118,8 +118,8 @@
  end_per_testcase(start_and_stop, _) ->
      ok;
 
- end_per_testcase(_, _) ->
-     ServerPid = ?config(server_pid),
+ end_per_testcase(_, Config) ->
+     ServerPid = proplists:get_value(server_pid, Config),
      stop_server(ServerPid).
 
  %%% test cases...
@@ -133,12 +133,12 @@
 
  %% configuration test
  config(Config) ->
-     ServerPid = ?config(server_pid, Config),
+     ServerPid = proplists:get_value(server_pid, Config),
      configure_server(ServerPid).
 
  %% test connecting and disconnecting client
  connect_and_disconnect(Config) ->
-     ServerPid = ?config(server_pid, Config),
+     ServerPid = proplists:get_value(server_pid, Config),
      {ok,SessionId} = my_server:connect(ServerPid),
      ok = my_server:disconnect(ServerPid, SessionId).
 
@@ -179,18 +179,18 @@
       <p>To save <c>Config</c> data, return tuple <c>{save_config,ConfigList}</c>
          from <c>end_per_testcase</c> or from the main test case function.</p>
 
-      <p>To read data saved by a previous test case, use macro <c>config</c> with a 
-	<c>saved_config</c> key as follows:</p>
+      <p>To read data saved by a previous test case, use <c>proplists:get_value</c>
+        with a <c>saved_config</c> key as follows:</p>
       
-      <p><c>{Saver,ConfigList} = ?config(saved_config, Config)</c></p>
+      <p><c>{Saver,ConfigList} = proplists:get_value(saved_config, Config)</c></p>
 
       <p><c>Saver</c> (<c>atom()</c>) is the name of the previous test case (where the
-	data was saved). The <c>config</c> macro can be used to extract particular data
-	also from the recalled <c>ConfigList</c>. It is strongly recommended that 
-	<c>Saver</c> is always matched to the expected name of the saving test case. 
-	This way, problems because of restructuring of the test suite can be avoided. 
-	Also, it makes the dependency more explicit and the test suite easier to read 
-        and maintain.</p>
+       data was saved). The <c>proplists:get_value</c> function can be used to extract
+       particular data also from the recalled <c>ConfigList</c>. It is strongly
+       recommended that <c>Saver</c> is always matched to the expected name of
+       the saving test case. This way, problems because of restructuring of the
+       test suite can be avoided. Also, it makes the dependency more explicit
+       and the test suite easier to read and maintain.</p>
 
       <p>To pass data from one test suite to another, the same mechanism is used. The data
 	is to be saved by finction
@@ -211,9 +211,9 @@
 
  init_per_suite(Config) ->
      %% read config saved by previous test suite
-     {server_a_SUITE,OldConfig} = ?config(saved_config, Config),
+     {server_a_SUITE,OldConfig} = proplists:get_value(saved_config, Config),
      %% extract server identity (comes from server_a_SUITE)
-     ServerId = ?config(server_id, OldConfig),
+     ServerId = proplists:get_value(server_id, OldConfig),
      SessionId = connect_to_server(ServerId),
      [{ids,{ServerId,SessionId}} | Config].
 
@@ -226,16 +226,16 @@
  all() -> [allocate, deallocate].
 
  allocate(Config) ->
-     {ServerId,SessionId} = ?config(ids, Config),
+     {ServerId,SessionId} = proplists:get_value(ids, Config),
      {ok,Handle} = allocate_resource(ServerId, SessionId),
      %% save handle for deallocation test
      NewConfig = [{handle,Handle}],
      {save_config,NewConfig}.
 
  deallocate(Config) ->
-     {ServerId,SessionId} = ?config(ids, Config),
-     {allocate,OldConfig} = ?config(saved_config, Config),
-     Handle = ?config(handle, OldConfig),
+     {ServerId,SessionId} = proplists:get_value(ids, Config),
+     {allocate,OldConfig} = proplists:get_value(saved_config, Config),
+     Handle = proplists:get_value(handle, OldConfig),
      ok = deallocate_resource(ServerId, SessionId, Handle).</pre>
 
       <p>To save <c>Config</c> data from a test case that is to be
@@ -245,7 +245,7 @@
       <p>The result is that the test case is skipped with <c>Reason</c> printed to
       the log file (as described earlier) and <c>ConfigList</c> is saved 
       for the next test case. <c>ConfigList</c> can be read using 
-      <c>?config(saved_config, Config)</c>, as described earlier. <c>skip_and_save</c>
+      <c>proplists:get_value(saved_config, Config)</c>, as described earlier. <c>skip_and_save</c>
       can also be returned from <c>init_per_suite</c>. In this case, the saved data can
       be read by <c>init_per_suite</c> in the suite that follows.</p>
     </section>
diff --git a/lib/common_test/doc/src/example_chapter.xml b/lib/common_test/doc/src/example_chapter.xml
index b82d14d2d8..e355e6ae7c 100644
--- a/lib/common_test/doc/src/example_chapter.xml
+++ b/lib/common_test/doc/src/example_chapter.xml
@@ -90,7 +90,7 @@
  %% Description: Cleanup after the suite.
  %%--------------------------------------------------------------------
  end_per_suite(Config) ->    
-     Ref = ?config(con_ref, Config),
+     Ref = proplists:get_value(con_ref, Config),
      db:disconnect(Ref),
      ok.
  
@@ -105,8 +105,8 @@
  %% Description: Initialization before each test case.
  %%--------------------------------------------------------------------
  init_per_testcase(Case, Config) ->
-     Ref = ?config(con_ref, Config),   
-     TableName = ?config(table_name, Config),
+     Ref = proplists:get_value(con_ref, Config),   
+     TableName = proplists:get_value(table_name, Config),
      ok = db:create_table(Ref, TableName, table_type(Case)),
      Config.
 
@@ -121,8 +121,8 @@
  %% Description: Cleanup after each test case.
  %%--------------------------------------------------------------------
  end_per_testcase(_Case, Config) -> 
-     Ref = ?config(con_ref, Config),   
-     TableName = ?config(table_name, Config),
+     Ref = proplists:get_value(con_ref, Config),   
+     TableName = proplists:get_value(table_name, Config),
      ok = db:delete_table(Ref, TableName),   
      ok. 
 
@@ -154,8 +154,8 @@
 
 
  insert_and_lookup(Key, Value, Config) ->
-     Ref = ?config(con_ref, Config),   
-     TableName = ?config(table_name, Config),
+     Ref = proplists:get_value(con_ref, Config),   
+     TableName = proplists:get_value(table_name, Config),
      ok = db:insert(Ref, TableName, Key, Value),
      [Value] = db:lookup(Ref, TableName, Key),
      ok = db:delete(Ref, TableName, Key),
diff --git a/lib/common_test/doc/src/write_test_chapter.xml b/lib/common_test/doc/src/write_test_chapter.xml
index 248ef317b9..d945e0a58f 100644
--- a/lib/common_test/doc/src/write_test_chapter.xml
+++ b/lib/common_test/doc/src/write_test_chapter.xml
@@ -277,10 +277,9 @@
     <seemfa marker="stdlib:proplists#get_value/2"><c>proplists:get_value/2</c></seemfa>.
     Also, or alternatively, the general <seeerl marker="stdlib:lists"><c>lists</c></seeerl>
     module contains useful functions. Normally, the only operations
-    performed on <c>Config</c> is insert (adding a tuple to the head of the list)
-    and lookup. <c>Common Test</c> provides a simple macro named <c>?config</c>,
-    which returns a value of an item in <c>Config</c> given the key (exactly like
-    <c>proplists:get_value</c>). Example: <c>PrivDir = ?config(priv_dir, Config)</c>.
+    performed on <c>Config</c> are insertion (adding a tuple to the head of the list)
+    and lookup. To look up a value in the config, <c>proplists:get_value</c> can
+    be used. For example: <c>PrivDir = proplists:get_value(priv_dir, Config)</c>.
     </p>
 
     <p>If the test case function crashes or exits purposely, it is considered
@@ -717,7 +716,7 @@
     <p>The following is an example of how to return the status from a group:</p>
     <pre>
  end_per_group(_Group, Config) ->
-     Status = ?config(tc_group_result, Config),
+     Status = proplists:get_value(tc_group_result, Config),
      case proplists:get_value(failed, Status) of
          [] ->                                   % no failed cases
              {return_group_result,ok};
@@ -733,7 +732,7 @@
     <p><em>Example:</em></p>
     <pre>
  end_per_group(group1, Config) ->
-     Status = ?config(tc_group_result, Config),
+     Status = proplists:get_value(tc_group_result, Config),
      Failed = proplists:get_value(failed, Status),
      case lists:member({group_result,group2}, Failed) of
            true ->
-- 
2.35.3

openSUSE Build Service is sponsored by