summaryrefslogtreecommitdiff
path: root/test/integration/test-essential-force-loopbreak
Commit message (Collapse)AuthorAgeFilesLines
* pass --force-remove-essential to dpkg only if neededDavid Kalnischkies2016-08-101-0/+3
| | | | | | APT (usually) knows which package is essential or not, so we can avoid passing this force flag to dpkg unconditionally if the user hasn't chosen a non-default essential handling obscuring the information.
* tests: support spaces in path and TMPDIRDavid Kalnischkies2015-12-191-2/+2
| | | | | | | This doesn't allow all tests to run cleanly, but it at least allows to write tests which could run successfully in such environments. Git-Dch: Ignore
* Fix the test suite againJulian Andres Klode2015-08-171-1/+1
| | | | Gbp-Dch: ignore
* test exitcode as well as string equalityDavid Kalnischkies2015-03-161-1/+1
| | | | | | | | We use test{success,failure} now all over the place in the framework, so its only consequencial to do this in the situations in which we test for a specific output as well. Git-Dch: Ignore
* check for failure message in testsuccess/failureDavid Kalnischkies2014-10-201-2/+2
| | | | | | | | These functions check the exit code of the command, but for apt commands we can go further and require an error message for non-zero exits and none for zero exits. Git-Dch: Ignore
* test/integration/test-essential-force-loopbreak: fix on non-amd64 systemsMichael Vogt2014-06-121-1/+1
|
* use 'native' instead of 'amd64' as pkg archDavid Kalnischkies2014-05-301-9/+9
| | | | Git-Dch: Ignore
* fix tight loop detection and temporary removesDavid Kalnischkies2014-05-221-0/+51
As outlined in #748355 apt segfaulted if it encountered a loop between a package pre-depending on a package conflicting with the previous as it ended up in an endless loop trying to unpack 'the other package'. In this specific case as an essential package is involved a lot of force needs to be applied, but can also be caused by 'normal' tight loops and highlights a problem in how we handle breaks which we want to avoid. The fix comes in multiple entangled changes: 1. All Smart* calls are guarded with loop detection. Some already had it, some had parts of it, some did it incorrect, and some didn't even try. 2. temporary removes to avoid a loop (which is done if a loop is detected) prevent the unpack of this looping package (we tried to unpack it to avoid the conflict/breaks, but due to a loop we couldn't, so we remove/deconfigure it instead which means we can't unpack it now) 3. handle conflicts and breaks very similar instead of duplicating most of the code. The only remaining difference is, as it should: deconfigure is enough for breaks, for conflicts we need the big hammer