feat: add content check to download

This commit is contained in:
gmega 2025-06-19 20:09:42 -03:00
parent a3043eabc9
commit 22bf3c0985
No known key found for this signature in database
GPG Key ID: 6290D34EAD824B18
2 changed files with 36 additions and 2 deletions

View File

@ -219,4 +219,23 @@ cdx_upload_sha1() {
cdx_download_sha1() {
local node_index="$1" cid="$2"
sha1 "${_cdx_downloads}/codex-${node_index}/$cid" || return 1
}
cdx_check_download() {
local upload_node="$1"\
download_node="$2"\
cid="$3"\
upload_sha1\
download_sha1
upload_sha1=$(cdx_upload_sha1 "$upload_node" "$cid")
download_sha1=$(cdx_download_sha1 "$download_node" "$cid")
if [ "$upload_sha1" != "$download_sha1" ]; then
# shellcheck disable=SC2140
echoerr "Download SHA-1 at node $download_node ($download_sha1) does not"\
" match upload SHA-1 at node $upload_node ($upload_sha1)"
return 1
fi
return 0
}

View File

@ -74,6 +74,20 @@ setup() {
pm_stop
}
@test "should check downloaded content" {
mkdir -p "${_cdx_genfiles}"
mkdir -p "${_cdx_uploads}/codex-0"
mkdir -p "${_cdx_downloads}/codex-1"
filename=$(cdx_generate_file 10)
echo "$(sha1 "$filename")" > "${_cdx_uploads}/codex-0/fakecid.sha1"
cp "$filename" "${_cdx_downloads}/codex-1/fakecid"
# Checks that the file uploaded at 0 matches the file downloaded at 1.
assert cdx_check_download 0 1 "fakecid"
}
@test "should upload and synchronously download file from Codex node" {
pm_start
@ -84,7 +98,8 @@ setup() {
cid=$(cdx_upload_file 0 "$filename")
assert cdx_download_file 0 "$cid"
assert_equal $(sha1 "${filename}") $(cdx_download_sha1 0 "$cid")
assert cdx_check_download 0 0 "$cid"
pm_stop
}
@ -101,7 +116,7 @@ setup() {
handle=$(cdx_download_file_async 0 "$cid")
await $handle 3
assert_equal $(sha1 "${filename}") $(cdx_download_sha1 0 "$cid")
assert cdx_check_download 0 0 "$cid"
pm_stop
}