test-external-installation-planner-protocol 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #!/bin/sh
  2. set -e
  3. TESTDIR="$(readlink -f "$(dirname "$0")")"
  4. NATIVE="$(command dpkg --print-architecture)"
  5. . "$TESTDIR/framework"
  6. setupenvironment
  7. configarchitecture "${NATIVE}"
  8. buildsimplenativepackage 'libfoo' "${NATIVE}" '3' 'experimental' 'Multi-Arch: same'
  9. buildsimplenativepackage 'foo' 'all' '3' 'experimental' 'Depends: newstuff'
  10. buildsimplenativepackage 'foo' 'all' '2' 'unstable' "Depends: libfoo:$NATIVE, stuff
  11. Conflicts: bar, libfoo:i386
  12. Recommends: unrelated"
  13. buildsimplenativepackage 'libfoo' "${NATIVE}" '2' 'unstable' 'Multi-Arch: same'
  14. buildsimplenativepackage 'unrelated-2' "${NATIVE}" '2' 'unstable'
  15. insertinstalledpackage 'foo' 'all' '1'
  16. insertinstalledpackage 'bar' 'all' '1'
  17. insertinstalledpackage 'stuff' 'all' '1'
  18. insertinstalledpackage 'unrelated-1' 'all' '1'
  19. setupaptarchive --no-update
  20. EIPPLOG="${TMPWORKINGDIRECTORY}/rootdir/var/log/apt/eipp.log"
  21. echo "Dir::Log::Planner \"$EIPPLOG\";" > ./rootdir/etc/apt/apt.conf.d/eipp-logging
  22. testsuccess apt update
  23. export APT_EDSP_DUMP_FILENAME="${TMPWORKINGDIRECTORY}/downloaded/dump.eipp"
  24. testfailure test -r "$EIPPLOG"
  25. testfailure aptget install foo --planner dump -y
  26. testfailure test -r "$EIPPLOG"
  27. testfailure grep 'unrelated-2' "$APT_EDSP_DUMP_FILENAME"
  28. testsuccessequal '2' grep -c '^Package: foo$' "$APT_EDSP_DUMP_FILENAME"
  29. testsuccessequal '1' grep -c '^Package: libfoo$' "$APT_EDSP_DUMP_FILENAME"
  30. testsuccessequal 'Planner: dump' grep '^Planner: ' "$APT_EDSP_DUMP_FILENAME"
  31. testsuccess aptget install foo -s
  32. testsuccess aptget install foo -y
  33. testsuccess test -r "$EIPPLOG"
  34. testsuccessequal "Request: EIPP 0.1
  35. Architecture: ${NATIVE}
  36. Architectures: ${NATIVE}
  37. Remove: bar:${NATIVE}
  38. Install: libfoo:${NATIVE} foo:${NATIVE}
  39. Planner: internal" head -n 6 "$EIPPLOG"
  40. aptinternalplanner < "$EIPPLOG" > planner.log || true
  41. testsuccessequal 'Remove: 6
  42. Unpack: 2
  43. Unpack: 4
  44. Configure: 2
  45. Configure: 4' grep -e '^Unpack:' -e '^Install:' -e '^Configure:' -e '^Remove:' planner.log
  46. rm -f "$EIPPLOG"
  47. testsuccess aptget install foo -s --reinstall
  48. testsuccess aptget install foo -y --reinstall
  49. testsuccess test -r "$EIPPLOG"
  50. testsuccessequal "Request: EIPP 0.1
  51. Architecture: ${NATIVE}
  52. Architectures: ${NATIVE}
  53. ReInstall: foo:${NATIVE}
  54. Planner: internal" head -n 5 "$EIPPLOG"
  55. aptinternalplanner < "$EIPPLOG" > planner.log || true
  56. testsuccessequal 'Unpack: 4
  57. Configure: 4' grep -e '^Unpack:' -e '^Install:' -e '^Configure:' -e '^Remove:' planner.log
  58. rm -f "$EIPPLOG"
  59. testsuccess aptget purge foo -s
  60. testsuccess aptget purge foo -y
  61. testsuccess test -r "$EIPPLOG"
  62. testsuccessequal "Request: EIPP 0.1
  63. Architecture: ${NATIVE}
  64. Architectures: ${NATIVE}
  65. Remove: foo:${NATIVE}
  66. Planner: internal" head -n 5 "$EIPPLOG"
  67. aptinternalplanner < "$EIPPLOG" > planner.log || true
  68. testsuccessequal 'Remove: 4' grep -e '^Unpack:' -e '^Install:' -e '^Configure:' -e '^Remove:' planner.log