tzhash/demo.sh

39 lines
929 B
Bash
Executable File

#!/usr/bin/env bash
#set -x
BLOCK_SIZE=${1:-100M} # 100Mb by default
TMPDIR="${TMPDIR:-$(mktemp -d)}"
OUT="${OUT:-"${TMPDIR}/bighash"}"
echo "Preparing big file at ${OUT}..."
dd if=/dev/urandom of="$OUT" bs="$BLOCK_SIZE" count=1
echo "Make 4 smaller parts from ${OUT}..."
split -dn 4 "${OUT}" "${TMPDIR}/"
echo -n "Big file hash: "
TZALL=$(./bin/tzsum -impl avx2 -name "${OUT}" | awk '{print $1}')
echo "${TZALL}"
for i in $(seq -f "%02g" 0 3)
do
echo -n "Part ${i} hash: "
PART=$(./bin/tzsum -impl avx2 -name "${TMPDIR}/${i}" | awk '{print $1}')
echo "${PART}" | tee -a "${TMPDIR}/part.hashes"
done
echo -n "Cumulative: "
TZCUM=$(./bin/homo -concat -file "${TMPDIR}/part.hashes")
echo "${TZCUM}"
if [[ "$TZCUM" == "$TZALL" ]]; then
echo "Original and cumulative hashes are equal!"
else
echo "Original and cumulative hashes are NOT equal!"
fi
echo -ne "Cleaning up .. "
rm -rf "${TMPDIR}"
echo "Done!"