github.com/saracen/git-lfs@v2.5.2+incompatible/t/t-batch-retries.sh (about)

     1  #!/usr/bin/env bash
     2  
     3  . "$(dirname "$0")/testlib.sh"
     4  
     5  begin_test "batch storage upload causes retries"
     6  (
     7    set -e
     8  
     9    reponame="batch-storage-upload-retry"
    10    setup_remote_repo "$reponame"
    11    clone_repo "$reponame" batch-storage-repo-upload
    12  
    13    contents="storage-upload-retry"
    14    oid="$(calc_oid "$contents")"
    15    printf "$contents" > a.dat
    16  
    17    git lfs track "*.dat"
    18    git add .gitattributes a.dat
    19    git commit -m "initial commit"
    20  
    21    git config --local lfs.transfer.maxretries 3
    22  
    23    GIT_TRACE=1 git push origin master 2>&1 | tee push.log
    24    if [ "0" -ne "${PIPESTATUS[0]}" ]; then
    25      echo >&2 "fatal: expected \`git push origin master\` to succeed ..."
    26      exit 1
    27    fi
    28  
    29    actual_count="$(grep -c "tq: retrying object $oid: Fatal error: Server error" push.log)"
    30    [ "2" = "$actual_count" ]
    31  
    32    assert_server_object "$reponame" "$oid"
    33  )
    34  end_test
    35  
    36  begin_test "batch storage download causes retries"
    37  (
    38    set -e
    39  
    40    reponame="batch-storage-download-retry"
    41    setup_remote_repo "$reponame"
    42    clone_repo "$reponame" batch-storage-repo-download
    43  
    44    contents="storage-download-retry"
    45    oid="$(calc_oid "$contents")"
    46    printf "$contents" > a.dat
    47  
    48    git lfs track "*.dat"
    49    git add .gitattributes a.dat
    50    git commit -m "initial commit"
    51  
    52    git push origin master
    53    assert_server_object "$reponame" "$oid"
    54  
    55    pushd ..
    56      git \
    57        -c "filter.lfs.process=" \
    58        -c "filter.lfs.smudge=cat" \
    59        -c "filter.lfs.required=false" \
    60        clone "$GITSERVER/$reponame" "$reponame-assert"
    61  
    62      cd "$reponame-assert"
    63  
    64      git config credential.helper lfstest
    65      git config --local lfs.transfer.maxretries 3
    66  
    67      GIT_TRACE=1 git lfs pull origin master 2>&1 | tee pull.log
    68      if [ "0" -ne "${PIPESTATUS[0]}" ]; then
    69        echo >&2 "fatal: expected \`git lfs pull origin master\` to succeed ..."
    70        exit 1
    71      fi
    72  
    73      actual_count="$(grep -c "tq: retrying object $oid: Fatal error: Server error" pull.log)"
    74      [ "2" = "$actual_count" ]
    75  
    76      assert_local_object "$oid" "${#contents}"
    77    popd
    78  )
    79  end_test