anchor.diff:  adler(Config) when is_list(Config) ->
       adler(adler({get_arg,Config}));
   adler({get_arg,Config}) ->
  -    Out = conf(data_dir,Config),
  +    Out = get_data_dir(Config),
       File1 = filename:join(Out,"zipdoc"),
       {ok,C1} = file:read_file(File1),
       {run,C1};
  
positive.code: zip_usage(Config) when is_list(Config) ->
      zip_usage(zip_usage({get_arg,Config}));
  zip_usage({get_arg,Config}) ->
      Out = conf(data_dir,Config),
      {ok,ZIP} = file:read_file(filename:join(Out,"zipdoc.zip")),
      {ok,ORIG} = file:read_file(filename:join(Out,"zipdoc")),
      {run,ZIP,ORIG};
  
negative.code: %% Check concurrent access to zlib driver.
  smp(Config) ->
      case erlang:system_info(smp_support) of
          true ->
              NumOfProcs = lists:min([8,erlang:system_info(schedulers)]),
              io:format("smp starting ~p workers\n",[NumOfProcs]),
  
              %% Tests to run in parallel.
              Funcs =
                  [zip_usage, gz_usage, compress_usage, dictionary_usage,
                   crc, adler],
  
              %% We get all function arguments here to avoid repeated parallel
              %% file read access.
              UsageArgs =
                  list_to_tuple([{F, ?MODULE:F({get_arg,Config})} || F <- Funcs]),
              Parent = self(),
  
              WorkerFun =
                  fun() ->
                      worker(rand:uniform(9999), UsageArgs, Parent)
                  end,
  
              Pids = [spawn_link(WorkerFun) || _ <- lists:seq(1, NumOfProcs)],
              wait_pids(Pids);
          false ->
              {skipped,"No smp support"}
      end.
  
  worker(Seed, FnATpl, Parent) ->
      io:format("smp worker ~p, seed=~p~n",[self(),Seed]),
  