anchor.diff:  	many_clients, otp_4906, otp_5402, simultaneous_open,
   	insert_new, repair_continuation, otp_5487, otp_6206,
   	otp_6359, otp_4738, otp_7146, otp_8070, otp_8856, otp_8898,
  -	otp_8899, otp_8903, otp_8923, otp_9282, otp_9607
  +	otp_8899, otp_8903, otp_8923, otp_9282
       ].
   
   groups() -> 
  
positive.code:     ok = dets:close(T),
      file:delete(File).
  
  otp_9607(doc) ->
      ["OTP-9607. Test downgrading the slightly changed format."];
  otp_9607(suite) ->
      [];
  otp_9607(Config) when is_list(Config) ->
      %% Note: the bug is about almost full tables. The fix of that
      %% problem is *not* tested here.
      Version = r13b,
      case ?t:is_release_available(atom_to_list(Version)) of
          true ->
              T = otp_9607,
              File = filename(T, Config),
              Key = a,
              Value = 1,
              Args = [{file,File}],
              {ok, T} = dets:open_file(T, Args),
              ok = dets:insert(T, {Key, Value}),
              ok = dets:close(T),
  
              Call = fun(P, A) ->
                             P ! {self(), A},
                             receive
                                 {P, Ans} ->
                                     Ans
                             after 5000 ->
                                     exit(other_process_dead)
                             end
                     end,
              %% Create a file on the modified format, read the file
              %% with an emulator that doesn't know about the modified
              %% format.
              {ok, Node} = start_node_rel(Version, Version, slave),
              Pid = rpc:call(Node, erlang, spawn,
                             [?MODULE, dets_dirty_loop, []]),
              {error,{needs_repair, File}} =
                  Call(Pid, [open, T, Args++[{repair,false}]]),
              io:format("Expect repair:~n"),
              {ok, T} = Call(Pid, [open, T, Args]),
              [{Key,Value}] = Call(Pid, [read, T, Key]),
              ok = Call(Pid, [close, T]),
              file:delete(File),
  
              %% Create a file on the unmodified format. Modify the file
              %% using an emulator that must not turn the file into the
              %% modified format. Read the file and make sure it is not
              %% repaired.
              {ok, T} = Call(Pid, [open, T, Args]),
              ok = Call(Pid, [write, T, {Key,Value}]),
              [{Key,Value}] = Call(Pid, [read, T, Key]),
              ok = Call(Pid, [close, T]),
  
              Key2 = b,
              Value2 = 2,
  
              {ok, T} = dets:open_file(T, Args),
              [{Key,Value}] = dets:lookup(T, Key),
              ok = dets:insert(T, {Key2,Value2}),
              ok = dets:close(T),
  
              {ok, T} = Call(Pid, [open, T, Args++[{repair,false}]]),
              [{Key2,Value2}] = Call(Pid, [read, T, Key2]),
              ok = Call(Pid, [close, T]),
  
              ?t:stop_node(Node),
              file:delete(File),
              ok;
          false ->
  	    {skipped, "No support for old node"}
      end.
  
  
  
  %%
  %% Parts common to several test cases
  
negative.code:          simultaneous_open/1, insert_new/1, repair_continuation/1,
           otp_5487/1, otp_6206/1, otp_6359/1, otp_4738/1, otp_7146/1,
           otp_8070/1, otp_8856/1, otp_8898/1, otp_8899/1, otp_8903/1,
           otp_8923/1, otp_9282/1]).
  
  -export([dets_dirty_loop/0]).
  
  