anchor.diff:  
   absname_bin(Config) when is_list(Config) ->
       case os:type() of
  -	{win32, _} -> 
  -	    ?line [Drive|_] = ?config(priv_dir, Config),
  -	    ?line Temp = filename:join([Drive|":/"], "temp"),
  -	    ?line case file:make_dir(Temp) of
  -		      ok -> ok;
  -		      {error,eexist} -> ok
  -		  end,
  -	    ?line {ok,Cwd} = file:get_cwd(),
  -	    ?line ok = file:set_cwd(Temp),
  -	    ?line <<Drive:8,":/temp/foo">> = filename:absname(<<"foo">>),
  -	    ?line <<Drive:8,":/temp/../ebin">> = filename:absname(<<"../ebin">>),
  -	    ?line <<Drive:8,":/erlang">> = filename:absname(<<"/erlang">>),
  -	    ?line <<Drive:8,":/erlang/src">> = filename:absname(<<"/erlang/src">>),
  -	    ?line <<Drive:8,":/erlang/src">> = filename:absname(<<"\\erlang\\src">>),
  -	    ?line <<Drive:8,":/temp/erlang">> = filename:absname(<<Drive:8,":erlang">>),
  -	    ?line <<Drive:8,":/temp/erlang/src">> =
  -		filename:absname(<<Drive:8,":erlang/src">>),
  -	    ?line <<Drive:8,":/temp/erlang/src">> =
  -		filename:absname(<<Drive:8,":erlang\\src\\">>),
  -	    ?line <<"a:/erlang">> = filename:absname(<<"a:erlang">>),
  -	    
  -	    ?line file:set_cwd(<<Drive:8,":/">>),
  -	    ?line <<Drive:8,":/foo">> = filename:absname(<<"foo">>),
  -	    ?line <<Drive:8,":/../ebin">> = filename:absname(<<"../ebin">>),
  -	    ?line <<Drive:8,":/erlang">> = filename:absname(<<"/erlang">>),
  -	    ?line <<Drive:8,":/erlang/src">> = filename:absname(<<"/erlang/src">>),
  -	    ?line <<Drive:8,":/erlang/src">> = filename:absname(<<"\\erlang\\\\src">>),
  -	    ?line <<Drive:8,":/erlang">> = filename:absname(<<Drive:8,":erlang">>),
  -	    ?line <<Drive:8,":/erlang/src">> = filename:absname(<<Drive:8,":erlang/src">>),
  -	    ?line <<"a:/erlang">> = filename:absname(<<"a:erlang">>),
  -	    
  -	    ?line file:set_cwd(Cwd),
  -	    ok;
  -	{unix, _} ->
  -            ?line ok = file:set_cwd(<<"/usr">>),
  -            ?line <<"/usr/foo">> = filename:absname(<<"foo">>),
  -            ?line <<"/usr/../ebin">> = filename:absname(<<"../ebin">>),
  -	    ?line file:set_cwd(<<"/">>),
  -	    ?line <<"/foo">> = filename:absname(<<"foo">>),
  -	    ?line <<"/../ebin">> = filename:absname(<<"../ebin">>),
  -	    ?line <<"/erlang">> = filename:absname(<<"/erlang">>),
  -	    ?line <<"/erlang/src">> = filename:absname(<<"/erlang/src">>),
  -	    ?line <<"/erlang/src">> = filename:absname(<<"/erlang///src">>),
  -	    ok
  +        {win32, _} -> 
  +            [Drive|_] = ?config(priv_dir, Config),
  +            Temp = filename:join([Drive|":/"], "temp"),
  +            case file:make_dir(Temp) of
  +                ok -> ok;
  +                {error,eexist} -> ok
  +            end,
  +            {ok,Cwd} = file:get_cwd(),
  +            ok = file:set_cwd(Temp),
  +            <<Drive:8,":/temp/foo">> = filename:absname(<<"foo">>),
  +            <<Drive:8,":/temp/../ebin">> = filename:absname(<<"../ebin">>),
  +            <<Drive:8,":/erlang">> = filename:absname(<<"/erlang">>),
  +            <<Drive:8,":/erlang/src">> = filename:absname(<<"/erlang/src">>),
  +            <<Drive:8,":/erlang/src">> = filename:absname(<<"\\erlang\\src">>),
  +            <<Drive:8,":/temp/erlang">> = filename:absname(<<Drive:8,":erlang">>),
  +            <<Drive:8,":/temp/erlang/src">> =
  +            filename:absname(<<Drive:8,":erlang/src">>),
  +            <<Drive:8,":/temp/erlang/src">> =
  +            filename:absname(<<Drive:8,":erlang\\src\\">>),
  +            <<"a:/erlang">> = filename:absname(<<"a:erlang">>),
  +
  +            file:set_cwd(<<Drive:8,":/">>),
  +            <<Drive:8,":/foo">> = filename:absname(<<"foo">>),
  +            <<Drive:8,":/../ebin">> = filename:absname(<<"../ebin">>),
  +            <<Drive:8,":/erlang">> = filename:absname(<<"/erlang">>),
  +            <<Drive:8,":/erlang/src">> = filename:absname(<<"/erlang/src">>),
  +            <<Drive:8,":/erlang/src">> = filename:absname(<<"\\erlang\\\\src">>),
  +            <<Drive:8,":/erlang">> = filename:absname(<<Drive:8,":erlang">>),
  +            <<Drive:8,":/erlang/src">> = filename:absname(<<Drive:8,":erlang/src">>),
  +            <<"a:/erlang">> = filename:absname(<<"a:erlang">>),
  +
  +            file:set_cwd(Cwd),
  +            ok;
  +        {unix,_} ->
  +            ok = file:set_cwd(<<"/usr">>),
  +            <<"/usr/foo">> = filename:absname(<<"foo">>),
  +            <<"/usr/../ebin">> = filename:absname(<<"../ebin">>),
  +
  +            file:set_cwd(<<"/">>),
  +            <<"/foo">> = filename:absname(<<"foo">>),
  +            <<"/../ebin">> = filename:absname(<<"../ebin">>),
  +            <<"/erlang">> = filename:absname(<<"/erlang">>),
  +            <<"/erlang/src">> = filename:absname(<<"/erlang/src">>),
  +            <<"/erlang/src">> = filename:absname(<<"/erlang///src">>),
  +            ok
       end.
   
   
  
positive.code:     %% Whenever joining two elements, test the equivalence between
      %% join/1 and join/2 (OTP-12158) by using help function
      %% filename_join/2.
      ?line "/" = filename:join(["/"]),
      ?line "/" = filename:join(["//"]),
      "usr/foo.erl" = filename_join("usr","foo.erl"),
      "/src/foo.erl" = filename_join(usr, "/src/foo.erl"),
      "/src/foo.erl" = filename_join("/src/",'foo.erl'),
  
negative.code: 
  absname_bin_2(Config) when is_list(Config) ->
      case os:type() of
          {win32, _} ->
              [Drive|_] = ?config(priv_dir, Config),
              <<Drive:8,":/temp/foo">> = filename:absname(<<"foo">>, <<Drive:8,":/temp">>),
              <<Drive:8,":/temp/../ebin">> = filename:absname(<<"../ebin">>,
                                                              <<Drive:8,":/temp">>),
              <<Drive:8,":/erlang">> = filename:absname(<<"/erlang">>, <<Drive:8,":/temp">>),
              <<Drive:8,":/erlang/src">> = filename:absname(<<"/erlang/src">>,
                                                            <<Drive:8,":/temp">>),
              <<Drive:8,":/erlang/src">> = filename:absname(<<"\\erlang\\src">>,
                                                            <<Drive:8,":/temp">>),
              <<Drive:8,":/temp/erlang">> = filename:absname(<<Drive:8,":erlang">>,
                                                             <<Drive:8,":/temp">>),
              <<Drive:8,":/temp/erlang/src">> = filename:absname(<<Drive:8,":erlang/src">>,
                                                                 <<Drive:8,":/temp">>),
              <<Drive:8,":/temp/erlang/src">> =
                  filename:absname(<<Drive:8,":erlang\\src\\">>, <<Drive:8,":/temp">>),
              <<"a:/erlang">> = filename:absname(<<"a:erlang">>, <<Drive:8,":/temp">>),
  
              file:set_cwd(<<Drive:8,":/">>),
              <<Drive:8,":/foo">> = filename:absname(foo, <<Drive:8,":/">>),
              <<Drive:8,":/foo">> = filename:absname(<<"foo">>, <<Drive:8,":/">>),
              <<Drive:8,":/../ebin">> = filename:absname(<<"../ebin">>, <<Drive:8,":/">>),
              <<Drive:8,":/erlang">> = filename:absname(<<"/erlang">>, <<Drive:8,":/">>),
              <<Drive:8,":/erlang/src">> = filename:absname(<<"/erlang/src">>,
                                                            <<Drive:8,":/">>),
              <<Drive:8,":/erlang/src">> = filename:absname(<<"\\erlang\\\\src">>,
                                                            <<Drive:8,":/">>),
              <<Drive:8,":/erlang">> = filename:absname(<<Drive:8,":erlang">>,
                                                        <<Drive:8,":/">>),
              <<Drive:8,":/erlang/src">> = filename:absname(<<Drive:8,":erlang/src">>,
                                                            <<Drive:8,":/">>),
              <<"a:/erlang">> = filename:absname(<<"a:erlang">>, <<Drive:8,":/">>),
  
              ok;
          _ ->
              <<"/usr/foo">> = filename:absname(<<"foo">>, <<"/usr">>),
              <<"/usr/../ebin">> = filename:absname(<<"../ebin">>, <<"/usr">>),
              <<"/foo">> = filename:absname(<<"foo">>, <<"/">>),
              <<"/../ebin">> = filename:absname(<<"../ebin">>, <<"/">>),
              <<"/erlang">> = filename:absname(<<"/erlang">>, <<"/">>),
              <<"/erlang/src">> = filename:absname(<<"/erlang/src">>, <<"/">>),
              <<"/erlang/src">> = filename:absname(<<"/erlang///src">>, <<"/">>),
              ok
      end.
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  basename_bin_1(Config) when is_list(Config) ->
      Dog = test_server:timetrap(test_server:seconds(10)),
      <<".">> = filename:basename(<<".">>),
      <<"foo">> = filename:basename(<<"foo">>),
      <<"foo">> = filename:basename(<<"/usr/foo">>),
      <<"foo.erl">> = filename:basename(<<"A:usr/foo.erl">>),
      case os:type() of
          {win32, _} ->
              <<"foo">> = filename:basename(<<"A:\\usr\\foo">>),
              <<"foo">> = filename:basename(<<"A:foo">>);
          _ ->
              <<"strange\\but\\true">> = filename:basename(<<"strange\\but\\true">>)
      end,
      test_server:timetrap_cancel(Dog),
      ok.
  
  basename_bin_2(Config) when is_list(Config) ->
      Dog = test_server:timetrap(test_server:seconds(10)),
      <<".">> = filename:basename(<<".">>, <<".erl">>),
      <<"foo">> = filename:basename(<<"foo.erl">>, <<".erl">>),
      <<"foo.erl">> = filename:basename(<<"/usr/foo.erl">>, <<".hrl">>),
      <<"foo.erl">> = filename:basename(<<"/usr.hrl/foo.erl">>, <<".hrl">>),
      <<"foo">> = filename:basename(<<"/usr.hrl/foo">>, <<".hrl">>),
      <<"foo">> = filename:basename(<<"usr/foo/">>, <<".erl">>),
      <<"foo.erl">> = filename:basename(<<"usr/foo.erl/">>, <<".erl">>),
      case os:type() of
          {win32, _} ->
              <<"foo">> = filename:basename(<<"A:foo">>, <<".erl">>),
              <<"foo.erl">> = filename:basename(<<"a:\\usr\\foo.erl">>, <<".hrl">>),
              <<"foo.erl">> = filename:basename(<<"c:\\usr.hrl\\foo.erl">>, <<".hrl">>),
              <<"foo">> = filename:basename(<<"A:\\usr\\foo">>, <<".hrl">>);
          _ ->
              <<"strange\\but\\true">> =
                  filename:basename(<<"strange\\but\\true.erl">>, <<".erl">>),
              <<"strange\\but\\true">> =
                  filename:basename(<<"strange\\but\\true">>, <<".erl">>)
      end,
      test_server:timetrap_cancel(Dog),
      ok.
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  dirname_bin(Config) when is_list(Config) ->
      case os:type() of
          {win32,_} ->
              <<"A:/usr">> = filename:dirname(<<"A:/usr/foo.erl">>),
              <<"A:usr">> = filename:dirname(<<"A:usr/foo.erl">>),
              <<"/usr">> = filename:dirname(<<"\\usr\\foo.erl">>),
              <<"/">> = filename:dirname(<<"\\usr">>),
              <<"A:">> = filename:dirname(<<"A:">>);
          _ -> true
      end,
      <<"usr">> = filename:dirname(<<"usr///foo.erl">>),
      <<".">> = filename:dirname(<<"foo.erl">>),
  