#!/bin/bash
set -e

# generate a diff between 2 binaries
/usr/bin/bsdiff /usr/bin/bspatch \
        /usr/bin/bsdiff \
        ${AUTOPKGTEST_TMP}/bspatch_to_bsdiff.patch

# apply the patch to generate a new binary
/usr/bin/bspatch /usr/bin/bspatch \
        ${AUTOPKGTEST_TMP}/patched_bspatch \
        ${AUTOPKGTEST_TMP}/bspatch_to_bsdiff.patch

# calculate the checksums
EXPECTED_CHECKSUM=$(sha256sum < /usr/bin/bsdiff)
PATCHED_CHECKSUM=$(sha256sum < ${AUTOPKGTEST_TMP}/patched_bspatch)

# compare output with expected output
if [[ "${EXPECTED_CHECKSUM}" = "${PATCHED_CHECKSUM}" ]]; then
    echo "PASS"
    exit 0
fi

echo "FAIL unable to bspatch a binary using a patch created with bsdiff"
exit 1
