#! /bin/sh

set -e

. ${srcdir}/test.lib.sh

tl_plan 24

cd ${DH_EXEC_BINDIR}
BINDIR=$(pwd)
cd - >/dev/null

cd ${DH_EXEC_SCRIPTDIR}
SCRIPTDIR=$(pwd)
cd - >/dev/null

cd ${DH_EXEC_LIBDIR}
LIBDIR=$(pwd)
cd - >/dev/null

cd ${srcdir}/pkg-test

check_pkg () {
        arch=${1:+-a$1}

        ln -sf ${BINDIR}/dh-exec .
        
        DEB_HOST_MULTIARCH=$(dpkg-architecture ${arch} -f -qDEB_HOST_MULTIARCH 2>/dev/null)

        PATH=${BINDIR}:${PATH} DH_EXEC_SCRIPTDIR=${SCRIPTDIR} DH_EXEC_LIBDIR=${LIBDIR} \
                dpkg-buildpackage -us -uc -b -d ${arch} 2>/dev/null
        debian/rules clean
        rm -f dh-exec

        dpkg-deb -c ../pkg-test_0_all.deb | \
                tl_expect_match "usr/bin/bin-foo installed" "./usr/bin/bin-foo"
        tl_next
        dpkg-deb -c ../pkg-test_0_all.deb | \
                tl_expect_match "usr/bin/bin-arch installed" "./usr/bin/bin-arch"
        tl_next
        dpkg-deb -c ../pkg-test_0_all.deb | \
                tl_expect_match "multi-arch path works" "./usr/lib/pkg-test/${DEB_HOST_MULTIARCH}/plugin-multiarch"
        tl_next
        dpkg-deb -c ../pkg-test_0_all.deb | \
                tl_expect_match "multi-arch path works" "./usr/lib/pkg-test/${DEB_HOST_MULTIARCH}/another-plugin\$"
        tl_next

        dpkg-deb -c ../pkg-test-illiterate_0_all.deb | \
                tl_expect_match "usr/bin/bin-foo installed" "./usr/bin/bin-foo"
        tl_next
        dpkg-deb -c ../pkg-test-illiterate_0_all.deb | \
                tl_expect_match "usr/bin/bin-arch installed" "./usr/bin/bin-arch"
        tl_next
        dpkg-deb -c ../pkg-test-illiterate_0_all.deb | \
                tl_expect_match "multi-arch path works" "./usr/lib/pkg-test/${DEB_HOST_MULTIARCH}/plugin-multiarch"
        tl_next
        dpkg-deb -c ../pkg-test-illiterate_0_all.deb | \
                tl_expect_match "multi-arch path works" "./usr/lib/pkg-test/${DEB_HOST_MULTIARCH}/another-plugin\$"
        tl_next

}

check_pkg
check_pkg linux-powerpc
check_pkg kfreebsd-i386

rm -f ../pkg-test*.deb ../pkg-test*.changes
