4 TESTDIR
=$(readlink -f $(dirname $0)) 
   7 configarchitecture 
'amd64' 'i386' 
   9 insertinstalledpackage 
'cool' 'all' '1' 
  10 insertinstalledpackage 
'stuff' 'all' '1' 
  11 insertinstalledpackage 
'somestuff' 'all' '1' 'Depends: cool, stuff' 
  13 insertpackage 
'unstable' 'cool' 'all' '2' 'Multi-Arch: foreign' 
  14 insertpackage 
'unstable' 'stuff' 'all' '2' 'Multi-Arch: foreign' 
  15 insertpackage 
'unstable' 'coolstuff' 'i386,amd64' '2' 'Depends: cool, stuff' 
  16 insertpackage 
'unstable' 'awesome' 'all' '2' 'Multi-Arch: foreign 
  18 insertpackage 
'unstable' 'badstuff' 'all' '2' 'Multi-Arch: foreign 
  20 insertpackage 
'unstable' 'awesomecoolstuff' 'i386' '2' 'Depends: coolstuff, awesome' 
  22 insertpackage 
'experimental' 'cool' 'all' '3' 'Multi-Arch: foreign' 
  23 insertpackage 
'experimental' 'stuff' 'all' '3' 'Multi-Arch: foreign' 
  24 insertpackage 
'experimental' 'coolstuff' 'i386,amd64' '3' 'Depends: cool, stuff' 
  28 testfailure aptget 
install --solver dump coolstuff 
-s 
  29 testsuccess 
grep ERR_NO_FILENAME rootdir
/tmp
/testfailure.output
 
  30 export APT_EDSP_DUMP_FILENAME
="/nonexistent/apt/edsp.dump" 
  31 testfailure aptget 
install --solver dump coolstuff 
-s 
  32 testsuccess 
grep ERR_WRITE_ERROR rootdir
/tmp
/testfailure.output
 
  33 export APT_EDSP_DUMP_FILENAME
="${TMPWORKINGDIRECTORY}/downloaded/dump.edsp" 
  35 testfailureequal 
'Reading package lists... 
  36 Building dependency tree... 
  37 Execute external solver... 
  38 The solver encountered an error of type: ERR_JUST_DUMPING 
  39 The following information might help you to understand what is wrong: 
  40 I am too dumb, i can just dump! 
  41 Please use one of my friends instead! 
  43 E: External solver failed with: I am too dumb, i can just dump!' aptget 
install --solver dump coolstuff 
-s 
  44 testsuccess 
test -s "$APT_EDSP_DUMP_FILENAME" 
  45 rm -f "$APT_EDSP_DUMP_FILENAME" 
  47 testsuccessequal 
'Reading package lists... 
  48 Building dependency tree... 
  49 Execute external solver... 
  50 The following NEW packages will be installed: 
  52 0 upgraded, 1 newly installed, 0 to remove and 2 not upgraded. 
  53 Inst coolstuff (2 unstable [amd64]) 
  54 Conf coolstuff (2 unstable [amd64])' aptget 
install --solver apt coolstuff 
-s 
  56 testsuccessequal 
'Reading package lists... 
  57 Building dependency tree... 
  58 Execute external solver... 
  59 The following NEW packages will be installed: 
  61 0 upgraded, 1 newly installed, 0 to remove and 2 not upgraded. 
  62 Inst coolstuff (3 experimental [amd64]) 
  63 Conf coolstuff (3 experimental [amd64])' aptget 
install --solver apt coolstuff 
-s -t experimental
 
  65 testsuccessequal 
"Reading package lists... 
  66 Building dependency tree... 
  67 Selected version '3' (experimental [amd64]) for 'coolstuff' 
  68 Execute external solver... 
  69 The following NEW packages will be installed: 
  71 0 upgraded, 1 newly installed, 0 to remove and 2 not upgraded. 
  72 Inst coolstuff (3 experimental [amd64]) 
  73 Conf coolstuff (3 experimental [amd64])" aptget 
install --solver apt coolstuff
/experimental 
-sq=0 
  75 testsuccessequal 
'Reading package lists... 
  76 Building dependency tree... 
  77 Execute external solver... 
  78 The following NEW packages will be installed: 
  80 0 upgraded, 1 newly installed, 0 to remove and 2 not upgraded. 
  81 Inst coolstuff (3 experimental [amd64]) 
  82 Conf coolstuff (3 experimental [amd64])' aptget 
install --solver apt coolstuff
=3 -sq=0 
  84 testsuccessequal 
'Reading package lists... 
  85 Building dependency tree... 
  86 Execute external solver... 
  87 The following packages will be REMOVED: 
  89 0 upgraded, 0 newly installed, 1 to remove and 2 not upgraded. 
  90 Remv somestuff [1]' aptget autoremove 
--solver apt somestuff 
-s 
  91 testsuccess aptmark auto cool stuff
 
  92 testsuccessequal 
'Reading package lists... 
  93 Building dependency tree... 
  94 Reading state information... 
  95 Execute external solver... 
  96 The following packages will be REMOVED: 
  98 0 upgraded, 0 newly installed, 3 to remove and 0 not upgraded. 
 101 Remv stuff [1]' aptget autoremove 
--solver apt somestuff 
-s 
 103 AUTOREMOVE
='apt autoremove' 
 104 if [ -n "$SUDO_USER" ]; then 
 105         AUTOREMOVE
="sudo $AUTOREMOVE" 
 107 testsuccessequal 
"Reading package lists... 
 108 Building dependency tree... 
 109 Reading state information... 
 110 Execute external solver... 
 111 The following package was automatically installed and is no longer required: 
 113 Use '$AUTOREMOVE' to remove it. 
 114 The following packages will be REMOVED: 
 116 0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded. 
 118 Purg cool [1]" aptget purge 
--solver apt cool 
-s 
 120 testsuccess aptget 
install awesomecoolstuff
:i386 
-s 
 121 testsuccess aptget 
install --solver apt awesomecoolstuff
:i386 
-s 
 123 rm -f "$APT_EDSP_DUMP_FILENAME" 
 124 testfailure aptget 
install --solver dump awesomecoolstuff
:i386 
-s 
 125 testsuccess 
test -s "$APT_EDSP_DUMP_FILENAME" 
 126 testequal 
'Install: awesomecoolstuff:i386' grep :i386 
"$APT_EDSP_DUMP_FILENAME" 
 127 testempty 
grep -e ':amd64' -e 'Architecture: any' "$APT_EDSP_DUMP_FILENAME" 
 129 testsuccess aptget dist
-upgrade -s 
 130 testsuccess aptget dist
-upgrade -s --solver apt
 
 132 testsuccess aptget upgrade 
-s 
 133 testsuccess aptget upgrade 
-s --solver apt
 
 135 testfailure aptget 
install awesome badstuff 
-s 
 136 testfailure aptget 
install awesome badstuff 
-s --solver apt
 
 137 testsuccess 
grep 'ERR_UNSOLVABLE' rootdir
/tmp
/testfailure.output
 
 139 configarchitecture 
'armel' 
 140 testfailure aptget 
install --solver apt awesomecoolstuff
:i386 
-s 
 141 msgtest 
'An invalid EDSP file generates a' 'hard error' 
 142 if echo "Request: This is a test\nFoo: bar\n\n" | aptinternalsolver 
> solver.result 
2>&1; then 
 148 msgtest 
'Test direct calling is okay for' 'apt-internal-solver' 
 149 cat "$APT_EDSP_DUMP_FILENAME" | aptinternalsolver 
> solver.result 
2>&1 || true
 
 150 if [ "$(tail -n2 solver.result | head -n1 )" = "Message: Done" ]; then 
 156 rm -f "$APT_EDSP_DUMP_FILENAME" 
 158 testsuccess aptinternalsolver scenario
 
 159 testsuccessequal 
'Package: stuff 
 169  a=experimental,n=experimental,c=main,b=all 
 182  a=unstable,n=sid,c=main,b=all 
 196 ' aptinternalsolver scenario stuff