anchor.diff:  
   
   init_per_testcase(_Case, Config) ->
  -    ?line Dog = ?t:timetrap(?default_timeout),
  +    Dog = ?t:timetrap(?default_timeout),
       [{watchdog, Dog} | Config].
   end_per_testcase(_Case, Config) ->
       Dog = ?config(watchdog, Config),
  
positive.code: 
      
  basic() ->
      ?line Node = start_node(nn(),[]),
      ?line ok = install_relay(Node),
      ?line Self = self(),
      ?line GL = group_leader(),
      ?line warning = warning_map(Node),
      ?line format(Node,"~p~n",[Self]),
      ?line ?EXPECT({handle_event,{error,GL,{_,"~p~n",[Self]}}}),
      ?line error_msg(Node,"~p~n",[Self]),
      ?line ?EXPECT({handle_event,{error,GL,{_,"~p~n",[Self]}}}),
      ?line warning_msg(Node,"~p~n",[Self]),
      ?line ?EXPECT({handle_event,{warning_msg,GL,{_,"~p~n",[Self]}}}),
      ?line info_msg(Node,"~p~n",[Self]),
      ?line ?EXPECT({handle_event,{info_msg,GL,{_,"~p~n",[Self]}}}),
      ?line Report = [{self,Self},{gl,GL},make_ref()],
      ?line error_report(Node,Report),
      ?line ?EXPECT({handle_event,{error_report,GL,{_,std_error,Report}}}),
      ?line warning_report(Node,Report),
      ?line ?EXPECT({handle_event,{warning_report,GL,{_,std_warning,Report}}}),
      ?line info_report(Node,Report),
      ?line ?EXPECT({handle_event,{info_report,GL,{_,std_info,Report}}}),
  
      ?line stop_node(Node),
      ok.
      
  warnings_info() ->
      ?line Node = start_node(nn(),"+Wi"),
      ?line ok = install_relay(Node),
      ?line Self = self(),
      ?line GL = group_leader(),
      ?line info = warning_map(Node),
      ?line Report = [{self,Self},{gl,GL},make_ref()],
      ?line warning_msg(Node,"~p~n",[Self]),
      ?line ?EXPECT({handle_event,{info_msg,GL,{_,"~p~n",[Self]}}}),
      ?line warning_report(Node,Report),
      ?line ?EXPECT({handle_event,{info_report,GL,{_,std_info,Report}}}),
      ?line stop_node(Node),
      ok.
  
  warnings_errors() ->    
      ?line Node = start_node(nn(),"+We"),
      ?line ok = install_relay(Node),
      ?line Self = self(),
      ?line GL = group_leader(),
      ?line error = warning_map(Node),
      ?line Report = [{self,Self},{gl,GL},make_ref()],
      ?line warning_msg(Node,"~p~n",[Self]),
      ?line ?EXPECT({handle_event,{error,GL,{_,"~p~n",[Self]}}}),
      ?line warning_report(Node,Report),
      ?line ?EXPECT({handle_event,{error_report,GL,{_,std_error,Report}}}),
      ?line stop_node(Node),
      ok.
      
      
  % RB...
  
  quote(String) ->
      case os:type() of
  	{win32,_} ->
  	    "\\\""++String++"\\\"";
  	_ ->
  	    "'\""++String++"\"'"
      end.
  
  iquote(String) ->
      case os:type() of
  	{win32,_} ->
  	    "\\\""++String++"\\\"";
  	_ ->
  	    "\""++String++"\""
      end.
  
  oquote(String) ->
      case os:type() of
  	{win32,_} ->
  	    "\""++String++"\"";
  	_ ->
  	    "'"++String++"'"
      end.
      
  
  
negative.code: 
  % Tests
  rb_basic() ->
      clean_rd(),
      % Behold, the magic parameters to activate rb logging...
      Node = start_node(nn(),"-boot start_sasl -sasl error_logger_mf_dir "++
                        quote(rd())++" error_logger_mf_maxbytes 5000 "
                        "error_logger_mf_maxfiles 5"),
      Self = self(),
      GL = group_leader(),
      warning = warning_map(Node),
      Report = [{self,Self},{gl,GL},make_ref()],
      fake_gl(Node,warning_msg,"~p~n",[Self]),
      fake_gl(Node,warning_report,Report),
      nice_stop_node(Node),
      application:start(sasl),
      rb:start([{report_dir, rd()}]),
      rb:list(),
      true = (one_rb_lines([error]) =:= 0),
      true = (one_rb_lines([error_report]) =:= 0),
      0 = one_rb_findstr([error],pid_to_list(Self)),
      0 = one_rb_findstr([error_report],pid_to_list(Self)),
      1 = one_rb_findstr([warning_msg],pid_to_list(Self)),
      1 = one_rb_findstr([warning_report],pid_to_list(Self)),
      0 = one_rb_findstr([info_msg],pid_to_list(Self)),
      0 = one_rb_findstr([info_report],pid_to_list(Self)),
      2 = one_rb_findstr([],pid_to_list(Self)),
      true = (one_rb_findstr([progress],"===") > 4),
      rb:stop(),
      application:stop(sasl),
      stop_node(Node),
      ok.
  
  rb_warnings_info() ->
      clean_rd(),
      Node = start_node(nn(),"+W i -boot start_sasl -sasl error_logger_mf_dir "++
                        quote(rd())++" error_logger_mf_maxbytes 5000 "
                        "error_logger_mf_maxfiles 5"),
      Self = self(),
      GL = group_leader(),
      info = warning_map(Node),
      Report = [{self,Self},{gl,GL},make_ref()],
      fake_gl(Node,warning_msg,"~p~n",[Self]),
      fake_gl(Node,warning_report,Report),
      nice_stop_node(Node),
      application:start(sasl),
      rb:start([{report_dir, rd()}]),
      rb:list(),
      true = (one_rb_lines([error]) =:= 0),
      true = (one_rb_lines([error_report]) =:= 0),
      0 = one_rb_findstr([error],pid_to_list(Self)),
      0 = one_rb_findstr([error_report],pid_to_list(Self)),
      0 = one_rb_findstr([warning_msg],pid_to_list(Self)),
      0 = one_rb_findstr([warning_report],pid_to_list(Self)),
      1 = one_rb_findstr([info_msg],pid_to_list(Self)),
      1 = one_rb_findstr([info_report],pid_to_list(Self)),
      2 = one_rb_findstr([],pid_to_list(Self)),
      true = (one_rb_findstr([progress],"===") > 4),
      rb:stop(),
      application:stop(sasl),
      stop_node(Node),
      ok.
  
  rb_warnings_errors() ->
      clean_rd(),
      Node = start_node(nn(),"+W e -boot start_sasl -sasl error_logger_mf_dir "++
                        quote(rd())++" error_logger_mf_maxbytes 5000 "
                        "error_logger_mf_maxfiles 5"),
      Self = self(),
      GL = group_leader(),
      error = warning_map(Node),
      Report = [{self,Self},{gl,GL},make_ref()],
      fake_gl(Node,warning_msg,"~p~n",[Self]),
      fake_gl(Node,warning_report,Report),
      nice_stop_node(Node),
      application:start(sasl),
      rb:start([{report_dir, rd()}]),
      rb:list(),
      true = (one_rb_lines([error]) > 1),
      true = (one_rb_lines([error_report]) > 1),
      1 = one_rb_findstr([error],pid_to_list(Self)),
      1 = one_rb_findstr([error_report],pid_to_list(Self)),
      0 = one_rb_findstr([warning_msg],pid_to_list(Self)),
      0 = one_rb_findstr([warning_report],pid_to_list(Self)),
      0 = one_rb_findstr([info_msg],pid_to_list(Self)),
      0 = one_rb_findstr([info_report],pid_to_list(Self)),
      2 = one_rb_findstr([],pid_to_list(Self)),
      true = (one_rb_findstr([progress],"===") > 4),
      rb:stop(),
      application:stop(sasl),
      stop_node(Node),
      ok.
  
  rb_trunc() ->
      clean_rd(),
      Node = start_node(nn(),"-boot start_sasl -sasl error_logger_mf_dir "++
                        quote(rd())++" error_logger_mf_maxbytes 5000 "
                        "error_logger_mf_maxfiles 5"),
      Self = self(),
      GL = group_leader(),
      Report = [{self,Self},{gl,GL},make_ref()],
      fake_gl(Node,warning_msg,"~p~n",[Self]),
      fake_gl(Node,warning_report,Report),
      nice_stop_node(Node),
      application:start(sasl),
      {ok,File} = file:read_file(rf()),
      S=byte_size(File)-2,
      <<TFile:S/binary,_/binary>>=File,
      file:write_file(rf(),TFile),
      rb:start([{report_dir, rd()}]),
      rb:list(),
      true = (one_rb_lines([error]) =:= 0),
      true = (one_rb_lines([error_report]) =:= 0),
      0 = one_rb_findstr([error],pid_to_list(Self)),
      0 = one_rb_findstr([error_report],pid_to_list(Self)),
      1 = one_rb_findstr([warning_msg],pid_to_list(Self)),
      0 = one_rb_findstr([warning_report],pid_to_list(Self)),
      0 = one_rb_findstr([info_msg],pid_to_list(Self)),
      0 = one_rb_findstr([info_report],pid_to_list(Self)),
      1 = one_rb_findstr([],pid_to_list(Self)),
      true = (one_rb_findstr([progress],"===") > 4),
      rb:stop(),
      application:stop(sasl),
      stop_node(Node),
      ok.
  
  rb_utc() ->
      clean_rd(),
      Node = start_node(nn(),"-boot start_sasl -sasl error_logger_mf_dir "++
                        quote(rd())++" error_logger_mf_maxbytes 5000 "
                        "error_logger_mf_maxfiles 5 -sasl utc_log true"),
      Self = self(),
      GL = group_leader(),
      Report = [{self,Self},{gl,GL},make_ref()],
      fake_gl(Node,warning_msg,"~p~n",[Self]),
      fake_gl(Node,warning_report,Report),
      nice_stop_node(Node),
      application:stop(sasl),
      UtcLog=case application:get_env(sasl,utc_log) of
                 {ok,true} ->
                     true;
                 _AllOthers ->
                     application:set_env(sasl,utc_log,true),
                     false
             end,
      application:start(sasl),
      rb:start([{report_dir, rd()}]),
      rb:list(),
      Pr=one_rb_findstr([progress],"==="),
      Wm=one_rb_findstr([warning_msg],"==="),
      Wr=one_rb_findstr([warning_report],"==="),
      Sum=Pr+Wm+Wr,
      Sum=one_rb_findstr([],"UTC"),
      rb:stop(),
      application:stop(sasl),
      application:set_env(sasl,utc_log,UtcLog),
      stop_node(Node),
      ok.
      
  file_utc() ->
      file:delete(lf()),
      SS="-stdlib utc_log true -kernel error_logger "++ oquote("{file,"++iquote(lf())++"}"),
      %erlang:display(SS),
      Node = start_node(nn(),SS),
      %erlang:display(rpc:call(Node,application,get_env,[kernel,error_logger])),
      Self = self(),
      GL = group_leader(),
      fake_gl(Node,error_msg,"~p~n",[Self]),
      fake_gl(Node,warning_msg,"~p~n",[Self]),
      fake_gl(Node,info_msg,"~p~n",[Self]),
      Report = [{self,Self},{gl,GL},make_ref()],
      fake_gl(Node,error_report,Report),
      fake_gl(Node,warning_report,Report),
      fake_gl(Node,info_report,Report),
      nice_stop_node(Node),
      receive after 5000 -> ok end, % Let the node die, needed
      6 = findstr("UTC",lf()),
      2 = findstr("WARNING",lf()),
      2 = findstr("ERROR",lf()),
      2 = findstr("INFO",lf()),
      stop_node(Node),
      ok.
  