#!/bin/sh

L=libnfsidmap1_2.8.2-2~exp1.1_amd64.deb
C=nfs-common_2.8.2-2~exp1.1_amd64.deb
S=nfs-kernel-server_2.8.2-2~exp1.1_amd64.deb

set -eu

if test -n "${1:-}"; then
	bad=$(dpkg --root="$1" --verify)
	if test -n "$bad"; then
		echo "$bad"
		exit 1
	fi
	exit 0
fi

bootstrap_test() {
	echo "test case $*"
	suite="$1"
	shift
	mmdebstrap --verbose --variant=apt "$suite" /dev/null http://deb.debian.org/debian --customize-hook="upload $L /l.deb" --customize-hook="upload $C /c.deb" --customize-hook="upload $S /s.deb" --customize-hook="$0" "$@" --customize-hook="$0" --chrooted-customize-hook="apt-get purge -y nfs-common" --customize-hook="$0"
}

PREINTS_OPT=--include=nfs-kernel-server
SRC_OPT='--customize-hook=sed -i -e s/bookworm/unstable/ "$1/etc/apt/sources.list"'
UPD_OPT='--chrooted-customize-hook=apt-get update'
INST_OPT="--chrooted-customize-hook=apt-get -y install /l.deb /c.deb /s.deb"

# install on unstable
bootstrap_test unstable "$INST_OPT"

# install on bookworm
bootstrap_test bookworm "$SRC_OPT" "$UPD_OPT" "$INST_OPT"

# upgrade unstable to fixed
bootstrap_test unstable "$PREINTS_OPT" "$INST_OPT"

# upgrade bookworm to fixed
bootstrap_test bookworm "$PREINTS_OPT" "$SRC_OPT" "$UPD_OPT" "$INST_OPT"
