#!/bin/sh
set -e

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

insertinstalledpackage 'pkg-native' 'amd64' '1' 'Multi-Arch: foreign
Essential: yes'
insertinstalledpackage 'pkg-foreign' 'i386' '1' 'Multi-Arch: foreign
Essential: yes'
insertinstalledpackage 'pkg-none-native' 'amd64' '1' 'Essential: yes'
insertinstalledpackage 'pkg-none-foreign' 'i386' '1' 'Essential: yes'

insertpackage 'unstable' 'pkg-native' 'amd64,i386' '2' 'Multi-Arch: foreign
Essential: yes'
insertpackage 'unstable' 'pkg-foreign' 'amd64,i386' '2' 'Multi-Arch: foreign
Depends: pkg-depends-new
Essential: yes'
insertpackage 'unstable' 'pkg-none-native' 'amd64,i386' '2' 'Essential: yes'
insertpackage 'unstable' 'pkg-none-foreign' 'amd64,i386' '2' 'Essential: yes
Depends: pkg-depends-new'

insertpackage 'unstable' 'pkg-none-new' 'amd64,i386' '2' 'Essential: yes'
insertpackage 'unstable' 'pkg-depends-new' 'amd64,i386' '2' 'Essential: yes'

setupaptarchive

testsuccessequal 'Reading package lists...
Building dependency tree...
The following packages will be REMOVED:
  pkg-native*
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  pkg-native
0 upgraded, 0 newly installed, 1 to remove and 3 not upgraded.
Purg pkg-native [1]' aptget purge pkg-native -s

testsuccessequal 'Reading package lists...
Building dependency tree...
The following packages will be REMOVED:
  pkg-foreign:i386*
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  pkg-foreign:i386
0 upgraded, 0 newly installed, 1 to remove and 3 not upgraded.
Purg pkg-foreign:i386 [1]' aptget purge pkg-foreign:i386 -s

testsuccessequal 'Reading package lists...
Building dependency tree...
The following packages will be REMOVED:
  pkg-none-native*
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  pkg-none-native
0 upgraded, 0 newly installed, 1 to remove and 3 not upgraded.
Purg pkg-none-native [1]' aptget purge pkg-none-native -s

testsuccessequal 'Reading package lists...
Building dependency tree...
The following packages will be REMOVED:
  pkg-none-foreign:i386*
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  pkg-none-foreign:i386
0 upgraded, 0 newly installed, 1 to remove and 3 not upgraded.
Purg pkg-none-foreign:i386 [1]' aptget purge pkg-none-foreign:i386 -s

testsuccessequal 'Reading package lists...
Building dependency tree...
Calculating upgrade...
The following NEW packages will be installed:
  pkg-depends-new:i386 pkg-none-new
The following packages will be upgraded:
  pkg-foreign:i386 pkg-native pkg-none-foreign:i386 pkg-none-native
4 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Inst pkg-depends-new:i386 (2 unstable [i386])
Conf pkg-depends-new:i386 (2 unstable [i386])
Inst pkg-foreign:i386 [1] (2 unstable [i386])
Conf pkg-foreign:i386 (2 unstable [i386])
Inst pkg-native [1] (2 unstable [amd64])
Conf pkg-native (2 unstable [amd64])
Inst pkg-none-foreign:i386 [1] (2 unstable [i386])
Conf pkg-none-foreign:i386 (2 unstable [i386])
Inst pkg-none-native [1] (2 unstable [amd64])
Conf pkg-none-native (2 unstable [amd64])
Inst pkg-none-new (2 unstable [amd64])
Conf pkg-none-new (2 unstable [amd64])' aptget dist-upgrade -s

insertinstalledpackage 'foo' 'amd64' '1' 'Depends: libfoo
Essential: yes'
insertinstalledpackage 'libfoo' 'amd64' '1'
testequal 'Reading package lists...
Building dependency tree...
The following packages will be REMOVED:
  foo* libfoo*
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  foo libfoo (due to foo)
0 upgraded, 0 newly installed, 2 to remove and 4 not upgraded.
Purg foo [1]
Purg libfoo [1]' aptget purge libfoo -s