#!/bin/sh
set -Ceu
cp -a $0-pkg "$AUTOPKGTEST_TMP/canary_path"
cd "$AUTOPKGTEST_TMP/canary_path"

DEB_RULES_REQUIRES_ROOT=no \
DEB_BUILD_OPTIONS=noopt debian/rules binary

cd debian

DEB_ADA_SOURCE_DIR=usr/share/ada/adainclude
DEB_GNAT_PROJECT_DIR=usr/share/gpr

DEB_HOST_MULTIARCH=`dpkg-architecture -qDEB_HOST_MULTIARCH`
DEB_LIB_DIR=usr/lib/$DEB_HOST_MULTIARCH
DEB_ADA_LIB_INFO_DIR=$DEB_LIB_DIR/ada/adalib

DEB_GNAT_VERSION=`gnatmake --version | sed 's/.* \([0-9]\+\)\.[0-9.]\+$/\1/;q'`

echo 'Manifest of foo-dev'
sort > expected1 <<EOF
libfoo-dev/$DEB_ADA_LIB_INFO_DIR/foo/sep.ali
libfoo-dev/$DEB_ADA_LIB_INFO_DIR/foo/proc.ali
libfoo-dev/$DEB_ADA_LIB_INFO_DIR/foo/specnobody.ali
libfoo-dev/$DEB_ADA_LIB_INFO_DIR/foo/renamed.ali
libfoo-dev/$DEB_ADA_LIB_INFO_DIR/foo/replacement.ali
libfoo-dev/$DEB_LIB_DIR/libfoo.a
libfoo-dev/usr/share/doc/libfoo-dev/changelog.gz
libfoo-dev/$DEB_ADA_SOURCE_DIR/foo/specnobody.ads
libfoo-dev/$DEB_ADA_SOURCE_DIR/foo/sep.adb
libfoo-dev/$DEB_ADA_SOURCE_DIR/foo/proc.adb
libfoo-dev/$DEB_ADA_SOURCE_DIR/foo/c_hello.c
libfoo-dev/$DEB_ADA_SOURCE_DIR/foo/renamed.ads
libfoo-dev/$DEB_ADA_SOURCE_DIR/foo/sep.ads
libfoo-dev/$DEB_ADA_SOURCE_DIR/foo/proc.ads
libfoo-dev/$DEB_ADA_SOURCE_DIR/foo/sep-p.adb
libfoo-dev/$DEB_ADA_SOURCE_DIR/foo/renamed.ada
libfoo-dev/$DEB_ADA_SOURCE_DIR/foo/replacement.ads
libfoo-dev/$DEB_ADA_SOURCE_DIR/foo/c_hello.h
libfoo-dev/$DEB_GNAT_PROJECT_DIR/foo.gpr
libfoo-dev/DEBIAN/control
libfoo-dev/DEBIAN/md5sums
EOF
find libfoo-dev -type f | sort | diff expected1 -

echo 'f_l ALI'
test -e libf-l-dev/$DEB_ADA_LIB_INFO_DIR/f_l/f_l.ali

echo 'f_l static'
test -e libf-l-dev/$DEB_LIB_DIR/libf_l.a

echo 'f_l sources'
test -e libf-l-dev/$DEB_ADA_SOURCE_DIR/f_l/f_l.adb
test -e libf-l-dev/$DEB_ADA_SOURCE_DIR/f_l/f_l.ads

echo 'f_l project'
test -e libf-l-dev/$DEB_GNAT_PROJECT_DIR/f_l.gpr

echo 'read-only ALI files'
test 444 = $(stat -c %a libf-l-dev/$DEB_ADA_LIB_INFO_DIR/f_l/f_l.ali)

echo 'debug-prefix-map'
# There should be no match, dh_ada_library replaces
#       -fdebug-prefix-map=$AUTOPKGTEST_TMP/canary_path=/usr/src/libfoo-1
# with
#       -fdebug-prefix-map=/build=/usr/src/libfoo-1
status=0
grep /canary_path lib*-dev/$DEB_ADA_LIB_INFO_DIR/*/*.ali lib*-dev/$DEB_GNAT_PROJECT_DIR/*.gpr || status=$?
test $status = 1

echo 'shared libraries'
test -e libf-l6/$DEB_LIB_DIR/libf_l.so.6
test -e libfoo5/$DEB_LIB_DIR/libfoo.so.5

echo 'devel symlinks'
test -h libf-l-dev/$DEB_LIB_DIR/libf_l.so
test $(readlink -v libf-l-dev/$DEB_LIB_DIR/libf_l.so) = libf_l.so.6
test -h libfoo-dev/$DEB_LIB_DIR/libfoo.so
test $(readlink -v libfoo-dev/$DEB_LIB_DIR/libfoo.so) = libfoo.so.5

echo 'ada:Depends:'
grep "^Depends: gnat (<< $(($DEB_GNAT_VERSION + 1))), gnat (>= $DEB_GNAT_VERSION), gnat-$DEB_GNAT_VERSION, gnat-$DEB_GNAT_VERSION-[0-9a-f]\{8\}, libf-l6 (= 1), libxmlada-unicode-dev-[0-9a-f]\{8\}\$" libf-l-dev/DEBIAN/control
grep "^Depends: gnat (<< $(($DEB_GNAT_VERSION + 1))), gnat (>= $DEB_GNAT_VERSION), gnat-$DEB_GNAT_VERSION, gnat-$DEB_GNAT_VERSION-[0-9a-f]\{8\}, libf-l-dev (= 1), libfoo5 (= 1), libxmlada-unicode-dev-[0-9a-f]\{8\}\$" libfoo-dev/DEBIAN/control

echo 'OK'
