anchor.diff:  -module(persistent_term_SUITE).
   -include_lib("common_test/include/ct.hrl").
   
  --export([all/0,suite/0,
  +-export([all/0,suite/0,init_per_suite/1,end_per_suite/1,
   	 basic/1,purging/1,sharing/1,get_trapping/1,
            info/1,info_trapping/1,killed_while_trapping/1,
            off_heap_values/1,keys/1,collisions/1,
  
positive.code:             _ -> 1000
          end,
      spawn_link(fun() -> get_trapping_create(N) end),
      All = do_get_trapping(N, []),
      N = get_trapping_check_result(lists:sort(All), 1),
      erlang:garbage_collect(),
      get_trapping_erase(N),
      chk(Chk).
  
  do_get_trapping(N, Prev) ->
      case persistent_term:get() of
          Prev when length(Prev) >= N ->
              All = [P || {{?MODULE,{get_trapping,_}},_}=P <- Prev],
              case length(All) of
                  N -> All;
                  _ -> do_get_trapping(N, Prev)
              end;
          New ->
              receive after 1 -> ok end,
              do_get_trapping(N, New)
      end.
  
  get_trapping_create(0) ->
  
negative.code:             _ -> 1000
          end,
      spawn_link(fun() -> info_trapping_create(N) end),
      All = do_info_trapping(N, 0, Chk),
      N = info_trapping_check_result(lists:sort(All), 1),
      erlang:garbage_collect(),
      info_trapping_erase(N),
      chk(Chk).
  
  do_info_trapping(N, PrevMem, Chk) ->
      case info_info() of
          {M,Mem} when M >= N ->
              true = Mem >= PrevMem,
              All = [P || {{?MODULE,{info_trapping,_}},_}=P <- pget(Chk)],
              case length(All) of
                  N -> All;
                  _ -> do_info_trapping(N, PrevMem, Chk)
              end;
          {_,Mem} ->
              true = Mem >= PrevMem,
              receive after 1 -> ok end,
              do_info_trapping(N, Mem, Chk)
      end.
  
  info_trapping_create(0) ->
  