github.com/noqcks/syft@v0.0.0-20230920222752-a9e2c4e288e5/test/install/2_download_release_asset_test.sh (about)

     1  . test_harness.sh
     2  
     3  test_download_release_asset() {
     4    release="$1"
     5    os="$2"
     6    arch="$3"
     7    format="$4"
     8    expected_mime_type="$5"
     9  
    10    # for troubleshooting
    11    # log_set_priority 10
    12  
    13    name=${PROJECT_NAME}
    14    version=$(tag_to_version ${release})
    15    github_download="https://github.com/${OWNER}/${REPO}/releases/download/${release}"
    16  
    17    tmpdir=$(mktemp -d)
    18  
    19    actual_filepath=$(download_asset "${github_download}" "${tmpdir}" "${name}" "${os}" "${arch}" "${version}" "${format}" )
    20  
    21    assertFileExists "${actual_filepath}" "download_asset os=${os} arch=${arch} format=${format}"
    22  
    23    actual_mime_type=$(file -b --mime-type ${actual_filepath})
    24  
    25    assertEquals "${expected_mime_type}" "${actual_mime_type}" "unexpected mimetype for os=${os} arch=${arch} format=${format}"
    26  
    27    rm -rf -- "$tmpdir"
    28  }
    29  
    30  # always test against the latest release
    31  release=$(get_release_tag "${OWNER}" "${REPO}" "latest" )
    32  
    33  # exercise all possible assets against a real github release (based on asset listing from https://github.com/anchore/syft/releases/tag/v0.36.0)
    34  run_test_case test_download_release_asset "${release}" "darwin" "amd64" "tar.gz" "application/gzip"
    35  run_test_case test_download_release_asset "${release}" "darwin" "arm64" "tar.gz" "application/gzip"
    36  run_test_case test_download_release_asset "${release}" "linux" "amd64" "tar.gz" "application/gzip"
    37  run_test_case test_download_release_asset "${release}" "linux" "amd64" "rpm" "application/x-rpm"
    38  run_test_case test_download_release_asset "${release}" "linux" "amd64" "deb" "application/vnd.debian.binary-package"
    39  run_test_case test_download_release_asset "${release}" "linux" "arm64" "tar.gz" "application/gzip"
    40  run_test_case test_download_release_asset "${release}" "linux" "arm64" "rpm" "application/x-rpm"
    41  run_test_case test_download_release_asset "${release}" "linux" "arm64" "deb" "application/vnd.debian.binary-package"