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

     1  #!/usr/bin/env bash
     2  
     3  . "$(dirname "$0")/testlib.sh"
     4  
     5  clean_setup () {
     6    mkdir "$1"
     7    cd "$1"
     8    git init
     9  }
    10  
    11  begin_test "clean simple file"
    12  (
    13    set -e
    14    clean_setup "simple"
    15  
    16    echo "whatever" | git lfs clean | tee clean.log
    17    [ "$(pointer cd293be6cea034bd45a0352775a219ef5dc7825ce55d1f7dae9762d80ce64411 9)" = "$(cat clean.log)" ]
    18  )
    19  end_test
    20  
    21  begin_test "clean a pointer"
    22  (
    23    set -e
    24    clean_setup "pointer"
    25  
    26    pointer cd293be6cea034bd45a0352775a219ef5dc7825ce55d1f7dae9762d80ce64411 9 | git lfs clean | tee clean.log
    27    [ "$(pointer cd293be6cea034bd45a0352775a219ef5dc7825ce55d1f7dae9762d80ce64411 9)" = "$(cat clean.log)" ]
    28  )
    29  end_test
    30  
    31  begin_test "clean pseudo pointer"
    32  (
    33    set -e
    34    clean_setup "pseudo"
    35  
    36    echo "version https://git-lfs.github.com/spec/v1
    37  oid sha256:7cd8be1d2cd0dd22cd9d229bb6b5785009a05e8b39d405615d882caac56562b5
    38  size 1024
    39  
    40  This is my test pointer.  There are many like it, but this one is mine." | git lfs clean | tee clean.log
    41    [ "$(pointer f492acbebb5faa22da4c1501c022af035469f624f426631f31936575873fefe1 202)" = "$(cat clean.log)" ]
    42  )
    43  end_test
    44  
    45  begin_test "clean pseudo pointer with extra data"
    46  (
    47    set -e
    48    clean_setup "extra-data"
    49  
    50    # pointer includes enough extra data to fill the 'git lfs clean' buffer
    51    printf "version https://git-lfs.github.com/spec/v1
    52  oid sha256:7cd8be1d2cd0dd22cd9d229bb6b5785009a05e8b39d405615d882caac56562b5
    53  size 1024
    54  \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    55  This is my test pointer.  There are many like it, but this one is mine.\n" | git lfs clean | tee clean.log
    56    [ "$(pointer c2f909f6961bf85a92e2942ef3ed80c938a3d0ebaee6e72940692581052333be 586)" = "$(cat clean.log)" ]
    57  )
    58  end_test
    59  
    60  begin_test "clean stdin"
    61  (
    62    set -e
    63  
    64    # git-lfs-clean(1) writes to .git/lfs/objects, and therefore must be executed
    65    # within a repository.
    66    reponame="clean-over-stdin"
    67    git init "$reponame"
    68    cd "$reponame"
    69  
    70    base64 /dev/urandom | head -c 1024 > small.dat
    71    base64 /dev/urandom | head -c 2048 > large.dat
    72  
    73    expected_small="$(calc_oid_file "small.dat")"
    74    expected_large="$(calc_oid_file "large.dat")"
    75  
    76    actual_small="$(git lfs clean < "small.dat" | grep "oid" | cut -d ':' -f 2)"
    77    actual_large="$(git lfs clean < "large.dat" | grep "oid" | cut -d ':' -f 2)"
    78  
    79    if [ "$expected_small" != "$actual_small" ]; then
    80      echo >&2 "fatal: expected small OID of: $expected_small, got: $actual_small"
    81      exit 1
    82    fi
    83  
    84    if [ "$expected_large" != "$actual_large" ]; then
    85      echo >&2 "fatal: expected large OID of: $expected_large, got: $actual_large"
    86      exit 1
    87    fi
    88  )
    89  end_test