anchor.diff:  	      [?FTS(), self() | A]).
   
   
  +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  +
  +i(F) ->
  +    i(F, []).
  +
  +i(F, A) ->
  +    print(info, "INF", F, A).
  +
  +
  +d(F) ->
  +    d(F, []).
  +
  +d(F, A) ->
  +    print(debug, "DBG", F, A).
  +
  +
  +print(Severity, PRE, FMT, ARGS) ->
  +    print(Severity, get(verbosity), erlang:timestamp(), get(tc), PRE, FMT, ARGS).
  +
  +print(Severity, Verbosity, Ts, Tc, P, F, A) ->
  +    print(printable(Severity,Verbosity), Ts, Tc, P, F, A).
  +
  +print(true, TS, TC, P, F, A) ->
  +    S = ?F("*** [~s] ~s ~p ~s:~w ***"
  +           "~n   " ++ F ++ "~n", 
  +           [?FTS(TS), P, self(), get(sname), TC | A]),
  +    io:format("~s", [S]),
  +    io:format(user, "~s", [S]);
  +print(_, _, _, _, _, _) ->
  +    ok.
  +
  +
  +printable(_, debug)   -> true;
  +printable(info, info) -> true;
  +printable(_,_)        -> false.
  +
  +
  +
  
positive.code: 
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  i(F) ->
      i(F, []).
  
  i(F, A) ->
      print(info, "INF", F, A).
  
  
  d(F) ->
      d(F, []).
  
  d(F, A) ->
      print(debug, "DBG", F, A).
  
  
  print(Severity, PRE, FMT, ARGS) ->
      print(Severity, get(verbosity), erlang:timestamp(), get(tc), PRE, FMT, ARGS).
  
  print(Severity, Verbosity, Ts, Tc, P, F, A) ->
      print(printable(Severity,Verbosity), Ts, Tc, P, F, A).
  
  print(true, TS, TC, P, F, A) ->
      S = ?F("*** [~s] ~s ~p ~s:~w ***"
             "~n   " ++ F ++ "~n", 
             [megaco:format_timestamp(TS), P, self(), get(sname), TC | A]),
      io:format("~s", [S]),
      io:format(user, "~s", [S]);
  print(_, _, _, _, _, _) ->
      ok.
  
  
  printable(_, debug)   -> true;
  printable(info, info) -> true;
  printable(_,_)        -> false.
  
  
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  to(To, Start) ->
      To - (mtime() - Start).
  
  
negative.code:      "i.e. return with {pending, _}. Then, expect the sender "
       "to keep re-sending the request until the reply is sent."];
  request_and_pending_and_late_reply(Config) when is_list(Config) ->
      Pre = fun() ->
                    MgcNode = make_node_name(mgc),
                    MgNode  = make_node_name(mg),
                    d("start nodes: "
                      "~n      MgcNode: ~p"
                      "~n      MgNode:  ~p",
                      [MgcNode, MgNode]),
                    Nodes = [MgcNode, MgNode], 
                    ok = ?START_NODES(Nodes, true),
                    Nodes
            end,
      Case = fun do_request_and_pending_and_late_reply/1,
      Post = fun(Nodes) ->
                     d("stop nodes"),
                     ?STOP_NODES(lists:reverse(Nodes))
             end,
      try_tc(rapalr, Pre, Case, Post).
  
  do_request_and_pending_and_late_reply([MgcNode, MgNode]) ->
      d("[MGC] start the simulator "),
      {ok, Mgc} = megaco_test_tcp_generator:start_link("MGC", MgcNode),
  
  