#!/bin/sh

set -e

# Test that pkgos-debcrate keeps every dependency in debian/control even
# when Debian doesn't provide them, reports them, and disables the test
# suite when dev-dependencies are missing.

ME=$(basename $0)
WORK=$(mktemp -d)
trap 'rm -rf "${WORK}"' EXIT

TESTDIR=$(cd "$(dirname "$0")" && pwd)
. "${TESTDIR}/fixtures.sh"

cd "${WORK}"

SERDE_REQ=1 NIX_REQ=0.30 fixture_cargo_toml ${WORK}/Cargo.toml
fixture_pack_crate ${WORK} ${WORK}/Cargo.toml
mock_git ${WORK} ${WORK}/fixture/serde_test-0.1.0 v0.1.0

touch ${WORK}/policy.txt

mock_apt ${WORK} ${WORK}/policy.txt
debcrate_env ${WORK}

"${SCRIPT}" serde_test >${WORK}/out.log 2>&1 || {
	cat ${WORK}/out.log
	echo "${ME}: pkgos-debcrate failed"
	exit 1
}

CTRL=${WORK}/rust-serde-test/debian/control
RULES=${WORK}/rust-serde-test/debian/rules

check () {
	if ! grep -q "$2" "$1" ; then
		echo "${ME}: $1 doesn't contain: $2"
		exit 1
	fi
}

check ${CTRL} 'librust-serde-dev'
check ${CTRL} 'librust-tempfile-dev <!nocheck>'
check ${WORK}/out.log 'Dependencies missing from Debian'
check ${RULES} 'override_dh_auto_test:'
check ${RULES} 'Disabled because tempfile'

exit 0
