#!/bin/sh set -e TESTDIR="$(readlink -f "$(dirname "$0")")" NATIVE="$(command dpkg --print-architecture)" . "$TESTDIR/framework" setupenvironment configarchitecture "${NATIVE}" buildsimplenativepackage 'libfoo' "${NATIVE}" '3' 'experimental' 'Multi-Arch: same' buildsimplenativepackage 'foo' 'all' '3' 'experimental' 'Depends: newstuff' buildsimplenativepackage 'foo' 'all' '2' 'unstable' "Depends: libfoo:$NATIVE, stuff Conflicts: bar, libfoo:i386 Recommends: unrelated" buildsimplenativepackage 'libfoo' "${NATIVE}" '2' 'unstable' 'Multi-Arch: same' buildsimplenativepackage 'unrelated-2' "${NATIVE}" '2' 'unstable' insertinstalledpackage 'foo' 'all' '1' insertinstalledpackage 'bar' 'all' '1' insertinstalledpackage 'stuff' 'all' '1' insertinstalledpackage 'unrelated-1' 'all' '1' setupaptarchive --no-update EIPPLOG="${TMPWORKINGDIRECTORY}/rootdir/var/log/apt/eipp.log" echo "Dir::Log::Planner \"$EIPPLOG\";" > ./rootdir/etc/apt/apt.conf.d/eipp-logging testsuccess apt update export APT_EDSP_DUMP_FILENAME="${TMPWORKINGDIRECTORY}/downloaded/dump.eipp" testfailure test -r "$EIPPLOG" testfailure aptget install foo --planner dump -y testfailure test -r "$EIPPLOG" testfailure grep 'unrelated-2' "$APT_EDSP_DUMP_FILENAME" testsuccessequal '2' grep -c '^Package: foo$' "$APT_EDSP_DUMP_FILENAME" testsuccessequal '1' grep -c '^Package: libfoo$' "$APT_EDSP_DUMP_FILENAME" testsuccessequal 'Planner: dump' grep '^Planner: ' "$APT_EDSP_DUMP_FILENAME" testsuccess aptget install foo -s testsuccess aptget install foo -y testsuccess test -r "$EIPPLOG" testsuccessequal "Request: EIPP 0.1 Architecture: ${NATIVE} Architectures: ${NATIVE} Remove: bar:${NATIVE} Install: libfoo:${NATIVE} foo:${NATIVE} Planner: internal" head -n 6 "$EIPPLOG" aptinternalplanner < "$EIPPLOG" > planner.log || true testsuccessequal 'Remove: 6 Unpack: 2 Unpack: 4 Configure: 2 Configure: 4' grep -e '^Unpack:' -e '^Install:' -e '^Configure:' -e '^Remove:' planner.log rm -f "$EIPPLOG" testsuccess aptget install foo -s --reinstall testsuccess aptget install foo -y --reinstall testsuccess test -r "$EIPPLOG" testsuccessequal "Request: EIPP 0.1 Architecture: ${NATIVE} Architectures: ${NATIVE} ReInstall: foo:${NATIVE} Planner: internal" head -n 5 "$EIPPLOG" aptinternalplanner < "$EIPPLOG" > planner.log || true testsuccessequal 'Unpack: 4 Configure: 4' grep -e '^Unpack:' -e '^Install:' -e '^Configure:' -e '^Remove:' planner.log rm -f "$EIPPLOG" testsuccess aptget purge foo -s testsuccess aptget purge foo -y testsuccess test -r "$EIPPLOG" testsuccessequal "Request: EIPP 0.1 Architecture: ${NATIVE} Architectures: ${NATIVE} Remove: foo:${NATIVE} Planner: internal" head -n 5 "$EIPPLOG" aptinternalplanner < "$EIPPLOG" > planner.log || true testsuccessequal 'Remove: 4' grep -e '^Unpack:' -e '^Install:' -e '^Configure:' -e '^Remove:' planner.log