12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- #!/bin/sh
- set -e
- TESTDIR="$(readlink -f "$(dirname "$0")")"
- . "$TESTDIR/framework"
- setupenvironment
- configarchitecture 'amd64'
- buildsimplenativepackage 'libfoo' 'amd64' '3' 'experimental' 'Multi-Arch: same'
- buildsimplenativepackage 'foo' 'all' '3' 'experimental' 'Depends: newstuff'
- buildsimplenativepackage 'foo' 'all' '2' 'unstable' 'Depends: libfoo:amd64, stuff
- Conflicts: bar, libfoo:i386
- Recommends: unrelated'
- buildsimplenativepackage 'libfoo' 'amd64' '2' 'unstable' 'Multi-Arch: same'
- buildsimplenativepackage 'unrelated-2' 'amd64' '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: amd64
- Architectures: amd64
- Remove: bar:amd64
- Install: libfoo:amd64 foo:amd64
- Planner: internal' head -n 6 "$EIPPLOG"
- aptinternalplanner < "$EIPPLOG" > planner.log || true
- testsuccessequal 'Remove: 7
- Unpack: 2
- Unpack: 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: amd64
- Architectures: amd64
- ReInstall: foo:amd64
- Planner: internal' head -n 5 "$EIPPLOG"
- aptinternalplanner < "$EIPPLOG" > planner.log || true
- testsuccessequal 'Unpack: 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: amd64
- Architectures: amd64
- Remove: foo:amd64
- 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
- testplannerfailuremsg() {
- local PLANNER="rootdir/usr/lib/apt/planners/$1"
- echo "$2" > "$PLANNER"
- chmod +x "$PLANNER"
- testfailuremsg "$3" apt install foo -s --planner $1
- }
- testplannerfailuremsg 'exit0withmsg' "#!/bin/sh
- echo 'Error: instant-exit
- Message: This planner exits instantly'
- exit 0" 'E: External planner failed with: This planner exits instantly'
- testplannerfailuremsg 'exit1withoutmsg' "#!/bin/sh
- exit 1" 'E: Sub-process exit1withoutmsg returned an error code (1)'
- testplannerfailuremsg 'exit1withmsg' "#!/bin/sh
- echo 'Error: instant-exit
- Message: This planner exits instantly'
- exit 1" 'E: External planner failed with: This planner exits instantly
- E: Sub-process exit1withmsg returned an error code (1)'
|