anchor.diff:      %% We can accept mnesia beeing loaded but *not* started.
       %% If its started it *may* contain data that will invalidate
       %% this test case.
  -    ?PRINT2("mnesia_start -> try load mnesia when:"
  +    ?IPRINT("mnesia_start -> try load mnesia when:"
               "~n   Loaded:  ~p"
               "~n   Running: ~p", [apps_loaded(), apps_running()]),
       ?line ok = case application:load(mnesia) of
  
positive.code:                        ERROR
                 end,
      F = fun({Key, Val}) ->
  		?PRINT2("mnesia_start -> try set mnesia env: "
                          "~n   ~p -> ~p", [Key, Val]),
  		?line application_controller:set_env(mnesia, Key, Val)
  	end,
      lists:foreach(F, Opts),
      ?PRINT2("mnesia_start -> create mnesia schema on ~p", [Nodes]),
      ?line case mnesia:create_schema(Nodes) of
                ok ->
                    ok;
  
negative.code:                   throw({skip,
                           ?F("Failed starting mnesia: ~p", [StartReason])})
            end,
      ?IPRINT("mnesia_start -> mnesia started", []),
      ok.
  
  mnesia_stop() ->
      ?IPRINT("mnesia_stop -> try stop mnesia when:"
              "~n   Loaded:  ~p"
              "~n   Running: ~p", [apps_loaded(), apps_running()]),
      application:stop(mnesia),
      ?IPRINT("mnesia_stop -> try unload mnesia when"
              "~n   Loaded:  ~p"
              "~n   Running: ~p", [apps_loaded(), apps_running()]),
      application:unload(mnesia),
      ?IPRINT("mnesia_stop -> done when:"
              "~n   Loaded:  ~p"
              "~n   Running: ~p", [apps_loaded(), apps_running()]),
      ok.
  