anchor.diff:  compress_usage(Config) when is_list(Config) ->
       compress_usage(compress_usage({get_arg,Config}));
   compress_usage({get_arg,Config}) ->
  -    Out = conf(data_dir,Config),
  +    Out = get_data_dir(Config),
       {ok,C1} = file:read_file(filename:join(Out,"png-compressed.zlib")),
       {run,C1};
   compress_usage({run,C1}) ->
  
positive.code: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %%% Helps with testing directly %%%%%%%%%%%%%
  
  conf(What,Config) ->
      try proplists:get_value(What,Config) of
  	undefined ->
  	    "./zlib_SUITE_data";
  	Dir ->
  	    Dir
      catch
  	_:_ -> "./zlib_SUITE_data"
      end.
  
  t() -> t([all]).
  
  t(What) when not is_list(What) ->
      t([What]);
  t(What) ->
      lists:foreach(fun(T) ->
  			  try ?MODULE:T([])
  			  catch _E:_R ->
  				  Line = get(test_server_loc),
  				  io:format("Failed ~p:~p ~p ~p ~p~n", 
  					    [T,Line,_E,_R, erlang:get_stacktrace()])
  			  end
  		  end, expand(What)).
  
  expand(All) ->
      lists:reverse(expand(All,[])).
  expand([H|T], Acc)  -> 
      case ?MODULE:H(suite) of
  	[] -> expand(T,[H|Acc]);
  	Cs -> 
  	    R = expand(Cs, Acc),
  	    expand(T, R)
      end;
  expand([], Acc) -> Acc.
  
  %% Generates a bunch of statistically random bytes using the size as seed.
  gen_determ_rand_bytes(Size) ->
  
negative.code: -include_lib("common_test/include/ct.hrl").
  -include_lib("common_test/include/ct_event.hrl").
  
  -export([suite/0, all/0, groups/0]).
  
  %% API group
  -export([api_open_close/1]).
  -export([api_deflateInit/1, api_deflateSetDictionary/1, api_deflateReset/1,
           api_deflateParams/1, api_deflate/1, api_deflateEnd/1]).
  -export([api_inflateInit/1, api_inflateReset/1, api_inflate2/1, api_inflate3/1,
           api_inflateChunk/1, api_safeInflate/1, api_inflateEnd/1]).
  -export([api_inflateSetDictionary/1, api_inflateGetDictionary/1]).
  -export([api_crc32/1, api_adler32/1]).
  -export([api_un_compress/1, api_un_zip/1, api_g_un_zip/1]).
  
  %% Examples group
  -export([intro/1]).
  
  %% Usage group
  -export([zip_usage/1, gz_usage/1, gz_usage2/1, compress_usage/1,
           dictionary_usage/1, large_deflate/1, crc/1, adler/1,
           only_allow_owner/1, sub_heap_binaries/1]).
  
  %% Bench group
  -export([inflate_bench_zeroed/1, inflate_bench_rand/1,
         deflate_bench_zeroed/1, deflate_bench_rand/1,
         chunk_bench_zeroed/1, chunk_bench_rand/1]).
  
  %% Others
  -export([smp/1, otp_9981/1, otp_7359/1]).
  
  -define(m(Guard, Expression),
      fun() ->
          Actual = (catch (Expression)),
          case Actual of
              Guard -> Actual;
              _Other ->
                  ct:fail("Failed to match ~p, actual result was ~p",
                      [??Guard, Actual])
          end
      end()).
  
  -define(EXIT(Reason), {'EXIT',{Reason,[{_,_,_,_}|_]}}).
  
  suite() ->
      [{ct_hooks,[ts_install_cth]},
  