#!/bin/sh
set -e

TESTDIR=$(readlink -f $(dirname $0))
. $TESTDIR/framework
setupenvironment
configarchitecture 'amd64'

insertinstalledpackage 'pkgarch' 'amd64' '1'
insertinstalledpackage 'pkgall' 'all' '1'

insertpackage 'unstable' 'pkgarch' 'amd64' '2'
insertpackage 'unstable' 'pkgall' 'all' '2'

setupaptarchive

runtests() {
	testempty aptmark showhold

	testequal 'Reading package lists...
Building dependency tree...
Calculating upgrade...
The following packages will be upgraded:
  pkgall pkgarch
2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
After this operation, 0 B of additional disk space will be used.
E: Trivial Only specified but this is not a trivial operation.' aptget dist-upgrade --trivial-only

	testequal 'pkgarch set on hold.' aptmark hold pkgarch
	testequal 'pkgarch' aptmark showhold

	testequal 'Reading package lists...
Building dependency tree...
Calculating upgrade...
The following packages have been kept back:
  pkgarch
The following packages will be upgraded:
  pkgall
1 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
After this operation, 0 B of additional disk space will be used.
E: Trivial Only specified but this is not a trivial operation.' aptget dist-upgrade --trivial-only

	testequal 'Canceled hold on pkgarch.' aptmark unhold pkgarch
	testempty aptmark showhold

	testequal 'Reading package lists...
Building dependency tree...
Calculating upgrade...
The following packages will be upgraded:
  pkgall pkgarch
2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
After this operation, 0 B of additional disk space will be used.
E: Trivial Only specified but this is not a trivial operation.' aptget dist-upgrade --trivial-only

	testequal 'pkgall set on hold.' aptmark hold pkgall
	testequal 'pkgall' aptmark showhold

	testequal 'Reading package lists...
Building dependency tree...
Calculating upgrade...
The following packages have been kept back:
  pkgall
The following packages will be upgraded:
  pkgarch
1 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
After this operation, 0 B of additional disk space will be used.
E: Trivial Only specified but this is not a trivial operation.' aptget dist-upgrade --trivial-only

	testequal 'Canceled hold on pkgall.' aptmark unhold pkgall
	testempty aptmark showhold
}
# single-arch
runtests
# multi-arch
configarchitecture 'amd64' 'i386'
runtests