anchor.diff:  %%%-------------------------------------------------------------------
   %%% @doc
   %%% This file provides tests concerning provider glusterfs storage API (REST).
  +%%% @end
  +%%%-------------------------------------------------------------------
  +%%% @doc
  +%%% This file provides tests concerning provider GlusterFS storage API (REST).
  +%%%
  +%%% The following parameters (or their values) are not tested in this suite:
  +%%% * transport    - there are 4 possible values [none, basic, token, oauth2], but only
  +%%%
  +
  +%%%
   %%% @end
   %%%-------------------------------------------------------------------
   -module(api_oneprovider_storage_glusterfs_test_SUITE).
  
positive.code:             <<"xlatorOptions">>,
              <<"timeout">>,
              <<"qosParameters">>,
              <<"storagePathType">>
  %%            <<"archiveStorage">>
          ],
          correct_values = #{
              <<"type">> => [<<"glusterfs">>],
              <<"volume">> => [<<"test">>],
              <<"hostname">> => [<<"dev-volume-gluster-krakow.default">>],
  
              <<"port">> => [<<"24007">>],
              <<"transport">> => [<<"tcp">>],
              <<"mountPoint">> => [<<"">>],
              <<"xlatorOptions">> => [<<"TRANSLATOR1.OPTION1=VALUE1">>],
  
  
  
  
              <<"timeout">> => [?STORAGE_TIMEOUT, ?STORAGE_TIMEOUT div 2],
              <<"qosParameters">> => [?STORAGE_QOS_PARAMETERS],
              <<"storagePathType">> => [<<"canonical">>]
              %% TODO VFS-8782 verify if archiveStorage option works properly on storage
  %%            <<"archiveStorage">> => [true, false]
          },
          bad_values = [
  %%            {<<"skipStorageDetection">>, <<"not_a_boolean">>, ?ERROR_BAD_VALUE_BOOLEAN(?STORAGE_DATA_KEY(StorageName, <<"skipStorageDetection">>))},
  %%            {<<"type">>, <<"bad_storage_type">>, ?ERROR_BAD_VALUE_NOT_ALLOWED(?STORAGE_DATA_KEY(StorageName, <<"type">>), ?STORAGE_TYPES)},
  %%            {<<"blockSize">>, <<"blockSize_as_string">>, ?ERROR_BAD_VALUE_INTEGER(?STORAGE_DATA_KEY(StorageName, <<"blockSize">>))},
  %%            {<<"timeout">>, 0, ?ERROR_BAD_VALUE_TOO_LOW(?STORAGE_DATA_KEY(StorageName, <<"timeout">>), 1)},
  %%            {<<"timeout">>, -?STORAGE_TIMEOUT, ?ERROR_BAD_VALUE_TOO_LOW(?STORAGE_DATA_KEY(StorageName, <<"timeout">>), 1)},
  %%            {<<"timeout">>, <<"timeout_as_string">>, ?ERROR_BAD_VALUE_INTEGER(?STORAGE_DATA_KEY(StorageName, <<"timeout">>))},
  %%            %% TODO: VFS-7641 add records for badly formatted QoS
  %%            {<<"qosParameters">>, #{<<"key">> => 1}, ?ERROR_BAD_VALUE_ATOM(?STORAGE_DATA_KEY(StorageName, <<"qosParameters.key">>))},
  %%            {<<"qosParameters">>, #{<<"key">> => 0.1}, ?ERROR_BAD_VALUE_ATOM(?STORAGE_DATA_KEY(StorageName, <<"qosParameters.key">>))},
  %%            {<<"storagePathType">>, <<"canonical">>, ?ERROR_BAD_VALUE_NOT_ALLOWED(?STORAGE_DATA_KEY(StorageName, <<"storagePathType">>), [<<"flat">>])},
  %%            {<<"storagePathType">>, 1, ?ERROR_BAD_VALUE_ATOM(?STORAGE_DATA_KEY(StorageName, <<"storagePathType">>))},
  %%            {<<"archiveStorage">>, <<"not_a_boolean">>, ?ERROR_BAD_VALUE_BOOLEAN(?STORAGE_DATA_KEY(StorageName, <<"archiveStorage">>))}
          ]
      };
  build_add_glusterfs_storage_data_spec(MemRef, glusterfs, bad_args) ->
  
negative.code: 
  groups() -> [
      {all_tests, [parallel], [
          add_correct_storage_and_perform_detection_test,
          add_correct_storage_and_skip_detection_test,
          add_bad_storage_and_perform_detection_test,
          add_bad_storage_and_skip_detection_test
      ]}
  ].
  
  