anchor.diff:  -export([confirm/0]).
   -include_lib("eunit/include/eunit.hrl").
   
  +%% keys for non-multipart objects
   -define(TEST_BUCKET,        "riak_test_bucket").
   -define(KEY_SINGLE_BLOCK,   "riak_test_key1").
   -define(KEY_MULTIPLE_BLOCK, "riak_test_key2").
  +
  +%% keys for multipart uploaded objects
  +-define(KEY_MP_TINY,        "riak_test_mp_tiny").  % single part, single block
  +-define(KEY_MP_SMALL,       "riak_test_mp_small"). % single part, multiple blocks
  +-define(KEY_MP_LARGE,       "riak_test_mp_large"). % multiple parts
  +
   
   confirm() ->
       {RiakNodes, _CSNodes, _Stanchion} = rtcs:setup(4),
  
positive.code:                         {100, mb(3)}, UserConfig),
      range_get_test_case(?TEST_BUCKET, ?KEY_MULTIPLE_BLOCK, MultipleBlock,
                          {0, none}, UserConfig),
      pass.
  
  mb(MegaBytes) ->
      MegaBytes * 1024 * 1024.
  
negative.code:         _ ->
              mochiweb_http:range_skip_length(Spec, Size)
      end.
  
  multipart_upload(Bucket, Key, Sizes, Config) ->
      InitRes = erlcloud_s3_multipart:initiate_upload(
                  Bucket, Key, "text/plain", [], Config),
      UploadId = erlcloud_xml:get_text(
                   "/InitiateMultipartUploadResult/UploadId", InitRes),
      Content = upload_parts(Bucket, Key, UploadId, Config, 1, Sizes, [], []),
      basic_get_test_case(Bucket, Key, Content, Config),
      Content.
  
  upload_parts(Bucket, Key, UploadId, Config, _PartCount, [], Contents, Parts) ->
      ?assertEqual(ok, erlcloud_s3_multipart:complete_upload(
                         Bucket, Key, UploadId, lists:reverse(Parts), Config)),
      iolist_to_binary(lists:reverse(Contents));
  upload_parts(Bucket, Key, UploadId, Config, PartCount, [Size | Sizes], Contents, Parts) ->
      Content = crypto:rand_bytes(Size),
      {RespHeaders, _UploadRes} = erlcloud_s3_multipart:upload_part(
                                    Bucket, Key, UploadId, PartCount, Content, Config),
      PartEtag = proplists:get_value("etag", RespHeaders),
      lager:debug("UploadId: ~p~n", [UploadId]),
      lager:debug("PartEtag: ~p~n", [PartEtag]),
      upload_parts(Bucket, Key, UploadId, Config, PartCount + 1,
                   Sizes, [Content | Contents], [{PartCount, PartEtag} | Parts]).
  