anchor.diff:  to_utf8(X) when is_list(X) -> unicode:characters_to_binary(X, utf8);
   to_utf8(X)                 -> X.
   
  -default_host() ->
  -  case application:get_env(katt, default_host) of
  -    {ok, {M, F, A}} -> apply(M, F, A);
  -    {ok, Value}     -> Value;
  -    undefined       -> "127.0.0.1"
  -  end.
  -
   %%%_* Emacs ============================================================
   %%% Local Variables:
   %%% allout-layout: t
  
positive.code: %%%_* Exports ==========================================================
  %% API
  -export([ run/1
          ]).
  
  %% Internal exports
  -export([ run_test/2
          ]).
  
  %%%_* Defines ==========================================================
  
negative.code:                       | {error, any()}].
  %% @doc Run test scenario. Argument is the full path to the testcase dir.
  %% @end
  run(TestcaseDir) -> run(TestcaseDir, "127.0.0.1").
  
  -spec ?MODULE:run(string(), string()) ->
                       [{string(), pass | {fail, {atom(), any()}}}
                        | {error, any()}].
  %% @doc Run test scenario. Argument is the full path to the testcase dir.
  %% @end
  run(TestcaseDir, DefaultHost) ->
    spawn_link(?MODULE, run_test, [self(), TestcaseDir, DefaultHost]),
    receive {done, Result}    -> Result
    after   ?TESTCASE_TIMEOUT -> {error, testcase_timeout}
    end.
  
  %%%_* Internal export --------------------------------------------------
  run_test(Caller, TestcaseDir, DefaultHost) ->
    Result = run_scenario(get_scenario(TestcaseDir), DefaultHost),
    Caller ! {done, Result}.
  
  %%%_* Internal =========================================================
  