#!/bin/sh
# autopkgtest check: Build and run a program against libsecret, to verify
# that the headers and pkg-config file are installed correctly
# (C) 2012 Canonical Ltd.
# (C) 2018-2019 Simon McVittie
# Authors: Martin Pitt, Simon McVittie

set -eux

WORKDIR="$(mktemp -d)"
export HOME="$WORKDIR"
export XDG_RUNTIME_DIR="$WORKDIR"
trap 'cd /; rm -rf "$WORKDIR"' 0 INT QUIT ABRT PIPE TERM

if [ -n "${DEB_HOST_GNU_TYPE:-}" ]; then
    CROSS_COMPILE="$DEB_HOST_GNU_TYPE-"
else
    CROSS_COMPILE=
fi

cd "$WORKDIR"
cat <<EOF > test.c
#include <libsecret/secret.h>

int main(void)
{
    g_assert_cmpuint(SECRET_TYPE_ITEM, !=, G_TYPE_INVALID);
    return 0;
}
EOF

for package in libsecret-1 libsecret-unstable; do
    case "$package" in
        (libsecret-unstable)
            cflags=-DSECRET_API_SUBJECT_TO_CHANGE
            ;;
        (*)
            cflags=
            ;;
    esac

    # Deliberately word-splitting pkg-config's output and $cflags:
    # shellcheck disable=SC2046
    ${CROSS_COMPILE}gcc $cflags -o "${package}-test" test.c $(${CROSS_COMPILE}pkg-config --cflags --libs "$package")
    echo "build ($package): OK"
    [ -x "${package}-test" ]
    dbus-run-session -- "./${package}-test"
    echo "run ($package): OK"
done
