anchor.diff:          PrevMemInfo::#mem_info{}, NewMemInfo::#mem_info{},
           NewItems::non_neg_integer(), AddedSize::non_neg_integer()) -> ok.
   check_memory_inc(PrevMemInfo, NewMemInfo, NewItems, AddedSize) ->
  +    check_memory_inc_(PrevMemInfo, NewMemInfo, NewItems, AddedSize, true).
  +
  +%% @doc Helper for check_memory_inc/4.
  +-spec check_memory_inc_(
  +        PrevMemInfo::#mem_info{}, NewMemInfo::#mem_info{},
  +        NewItems::non_neg_integer(), AddedSize::non_neg_integer(),
  +        CheckAtoms::boolean()) -> ok.
  +check_memory_inc_(PrevMemInfo, NewMemInfo, NewItems, AddedSize, CheckAtoms) ->
       % assume an entry for an item uses 4 * 1k memory for ets (excluding the binary size)
       EntryEtsSize = 4 * 1000,
       
       % we do not create additional atoms!
  -    ?equals(NewMemInfo#mem_info.atom_used, PrevMemInfo#mem_info.atom_used),
  +    ?IIF(CheckAtoms,
  +         ?equals(NewMemInfo#mem_info.atom_used, PrevMemInfo#mem_info.atom_used),
  +         ok),
       
       % tolerate 250k binary memory overhead for running maintenance processes and binary messages
       ?equals_pattern_w_note(NewMemInfo#mem_info.binary, X when X =< PrevMemInfo#mem_info.binary + AddedSize + 250000,
  
positive.code:     ?equals(OnlyNew, []),
  %%     ct:pal("~p~n", [erlang:memory()]),
      % TODO: add memory check? (process state may increase, e.g. dead nodes in fd)
  %%     check_memory_inc(PrevMemInfo, NewMemInfo, 0, 0),
      ok.
  
  add_kill_nodes_50(_Config) ->
  
negative.code:     ?equals(OnlyNew, []),
  %%     ct:pal("~p~n", [erlang:memory()]),
      % TODO: add memory check? (process state may increase, e.g. dead nodes in fd)
  %%     check_memory_inc_ring(PrevMemInfo, NewMemInfo, 0, 0),
      ok.
  
  %% @doc Starts garbage collection for all processes.
  