anchor.diff:  
   
   %%%===================================================================
  -%%% ACL TESTS SCENARIOS SCENARIOS
  +%%% ACL TESTS SCENARIOS MECHANISM
   %%%===================================================================
   
   
  
positive.code: 
      % Denying only required perms and granting all others should result in eacces
      lists:foreach(fun({Guid, Perm}) ->
          lfm_permissions_test_utils:set_acls(Node, AllPermsPerFile, #{Guid => [Perm]}, AceWho, AceFlags),
          ?assertMatch(
              {error, ?EACCES},
              Operation(OwnerSessId, SessId, TestCaseRootDirPath, ExtraData)
          )
      end, AllRequiredPerms),
  
      % Denying all perms but required ones should result in success
      lfm_permissions_test_utils:set_acls(Node, #{}, ComplementaryPermsPerFile, AceWho, AceFlags),
      ?assertNotMatch(
          {error, _},
          Operation(OwnerSessId, SessId, TestCaseRootDirPath, ExtraData)
      ).
  
  
  %%%===================================================================
  
negative.code: -include_lib("ctool/include/test/performance.hrl").
  
  -export([run_scenarios/2]).
  
  
  -define(assert_match(__Expect, __Expression, __ScenarioName, __PermsPerGuid),
      try
          ?assertMatch(__Expect, __Expression)
      catch _:_ ->
          ct:pal(
              "PERMISSIONS TESTS FAILURE~n"
              "   Scenario: ~p~n"
              "   Perms per file: ~p~n",
              [
                  __ScenarioName,
                  maps:fold(fun(Guid, SetPerms, Acc) ->
                      Acc#{get_file_path(Node, OwnerSessId, Guid) => SetPerms}
                  end, #{}, __PermsPerGuid)
              ]
          ),
          erlang:error(perms_test_failed)
      end
  ).
  
  -define(assert_not_match(__Expect, __Expression, __ScenarioName, __PermsPerGuid),
      try
          ?assertNotMatch(__Expect, __Expression)
      catch _:_ ->
          ct:pal(
              "PERMISSIONS TESTS FAILURE~n"
              "   Scenario: ~p~n"
              "   Perms per file: ~p~n",
              [
                  __ScenarioName,
                  maps:fold(fun(Guid, SetPerms, Acc) ->
                      Acc#{get_file_path(Node, OwnerSessId, Guid) => SetPerms}
                  end, #{}, __PermsPerGuid)
              ]
          ),
          erlang:error(perms_test_failed)
      end
  ).
  
  -define(SCENARIO_NAME(__PREFIX, __TYPE),
      <<__PREFIX, (atom_to_binary(__TYPE, utf8))/binary>>
  