#!/usr/share/ucs-test/runner bash
## desc: |
##  Update localhost repository at max version
##  1. Set version to 99.99-99-999
##  2. Setup local repository with next major, minor, patch-level
##  2. Check if updater skips these updates
## bugs: [25619]
## roles-not: [basesystem]
## tags: [basic]
## packages:
##  - apache2 | apache2-mpm-prefork
## versions:
##  3.0-0: found
##  3.0-1: fixed
## exposure: dangerous

RETVAL=121 # Bug vorhanden, wie vermutet
. pool.sh || exit 137

compname="test${RANDOM}"

setup_apache "${repoprefix}"

mkpdir "99.99-0" maintained "${ARCH}"
DMASTER="${DIR}"
mkdeb "${pkgname}" 1 "${ARCH}" "${DIR}"
mkpkg "${DIR}"
declare -a DOKAY=("${DIR}") DBAD=()

echo -n " patchlevel..."
for ((pat=1;pat<=100;pat+=1)) # 0 is master
do
	mkpdir "99.99-${pat}" maintained "${ARCH}"
	if [ "$pat" -le 99 ]
	then
		ln -f "${DMASTER:?}/"* "${DIR:?}/"
		DOKAY+=("${DIR}")
	else
		mkdeb "${pkgname}" 3 "${ARCH}" "${DIR}"
		mkpkg "${DIR}"
		DBAD+=("${DIR}")
	fi
done
echo -n " minor..."
mkpdir "99.100-0" maintained "${ARCH}"
mkdeb "${pkgname}" 4 "${ARCH}" "${DIR}"
mkpkg "${DIR}"
DBAD+=("${DIR}")
echo -n " major..."
mkpdir "100.0-0" maintained "${ARCH}"
mkdeb "${pkgname}" 5 "${ARCH}" "${DIR}"
mkpkg "${DIR}"
DBAD+=("${DIR}")
echo " done."

config_repo \
	version/version=99.99 \
	version/patchlevel=99 \
	"repository/online/component/${compname}=no" # Bug #24347

(
	set -e
	apt-get -qq update
	apt-get -qq install "${pkgname}"
	dpkg-query -W "${pkgname}" | grep -Fqx "${pkgname}	1"
	univention-upgrade net
	dpkg-query -W "${pkgname}" | grep -Fqx "${pkgname}	1"
	test 99.99 = "$(ucr get version/version)"
	test 99 = "$(ucr get version/patchlevel)"
	checkdeb "${pkgname}" 1

	echo "Checking /etc/apt/sources.list* for ${#DOKAY[@]} required entries..."
	checkapt "http://localhost\(:80\)\?/${repoprefix}/" "${DOKAY[@]}"
	echo "Checking /etc/apt/sources.list* for ${#DBAD[@]} forbidden entries..."
	for dir in "${DBAD[@]}"
	do
		checkapt "http://localhost\(:80\)\?/${repoprefix}/" "${dir}" 2>/dev/null && echo "Failed: $dir" >&2
		test 1 -eq $?
	done
)
[ $? -eq 0 ] && RETVAL=100 # Test bestanden (Keine Fehler)
dpkg -P --force-all "${pkgname}" >&3 2>&3

exit ${RETVAL}
# vim:set ft=sh:
