summaryrefslogtreecommitdiff
path: root/test
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'upstream/debian/sid' into debian/experimentalMichael Vogt2014-05-295-18/+127
|\ | | | | | | | | Conflicts: test/integration/test-bug-747261-arch-specific-conflicts
| * fix tight loop detection and temporary removesDavid Kalnischkies2014-05-224-18/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * make test independent from the actual Install-SizeDavid Kalnischkies2014-05-221-2/+2
| | | | | | | | Git-Dch: Ignore
| * add an additional test for arch specific conflictsDavid Kalnischkies2014-05-161-0/+36
| | | | | | | | | | | | | | | | | | | | | | In bugreport #747261 I confirmed with this testcase that apt actually supports the requested architecture-specific conflicts already since 2012 with commit cef094c2ec8214b2783a2ac3aa70cf835381eae1. The old test only does simulations which are handy to check apt, this one builds 'real' packages to see if dpkg agrees with us. Git-Dch: Ignore
| * Never parse Version/Architecture tags in a Translation-$lang fileMichael Vogt2014-05-151-0/+41
| | | | | | | | | | | | | | | | | | | | Version/Architecture information in a Translation-$lang file is not allowed, so don't try to parse it. This is a fix for a bugreport where a Translation-en file contained the content of the regular Packages file (probably due to local FS corruption). This lead to strange error messages on file download. Thanks to Thomas Reusch for the report.
* | (try to) fix travis-ci build failuresDavid Kalnischkies2014-05-123-6/+22
| | | | | | | | | | | | | | | | | | | | dpkg on Ubuntu 12.04 does not seem to support parsing arch-specific dependencies, so we try to detect if we face such a dpkg in the test. In the other test the order depends on libdb, which changes per arch, so we just run it through our sorting binary and be happy (hopefully). Git-Dch: Ignore
* | add an additional test for arch specific conflictsDavid Kalnischkies2014-05-101-0/+36
| | | | | | | | | | | | | | | | | | | | | | In bugreport #747261 I confirmed with this testcase that apt actually supports the requested architecture-specific conflicts already since 2012 with commit cef094c2ec8214b2783a2ac3aa70cf835381eae1. The old test only does simulations which are handy to check apt, this one builds 'real' packages to see if dpkg agrees with us. Git-Dch: Ignore
* | invalid cache if architecture set doesn't matchDavid Kalnischkies2014-05-101-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The cache heavily depends on the architecture(s) it is build for, especially if you move from single- to multiarch. Adding a new architecture to dpkg therefore has to be detected and must invalidate the cache so that we don't operate on incorrect data. The incorrect data will prevent us from doing otherwise sensible actions (it doesn't allow bad things to happen) and the recovery is simple and automatic in most cases, so this hides pretty well and is also not as serious as it might sound at first. Closes: 745036
* | improve pkgTagSection scanning and parsingDavid Kalnischkies2014-05-102-0/+184
| | | | | | | | | | | | Removes the 256 fields limit, deals consistently with spaces littered all over the place and is even a tiny bit faster than before. Even comes with a bunch of new tests to validate these claims.
* | parse and retrieve multiple Descriptions in one recordDavid Kalnischkies2014-05-091-6/+3
| | | | | | | | | | | | | | | | It seems unlikely for now that proper archives will carry multiple Description-* stanzas in the Packages (or Translation-*) file, but sometimes apt eats its own output as shown by the usage of the CD team and it would be interesting to let apt output multiple translations e.g. in 'apt-cache show'.
* | reenable pipelining via hashsum reordering supportDavid Kalnischkies2014-05-092-57/+102
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now that methods have the expected hashes available they can check if the response from the server is what they expected. Pipelining is one of those areas in which servers can mess up by not supporting it properly, which forced us to disable it for the time being. Now, we check if we got a response out of order, which we can not only use to disable pipelining automatically for the next requests, but we can fix it up just like the server responded in proper order for the current requests. To ensure that this little trick works pipelining is only attempt if we have hashsums for all the files in the chain which in theory reduces the use of pipelining usage even on the many servers which work properly, but in practice only the InRelease file (or similar such) will be requested without a hashsum – and as it is the only file requested in that stage it can't be pipelined even if we wanted to. Some minor annoyances remain: The display of the progress we have doesn't reflect this change, so it looks like the same package gets downloaded multiple times while others aren't at all. Further more, partial files are not supported in this recovery as the received data was appended to the wrong file, so the hashsum doesn't match. Both seem to be minor enough to reenable pipelining by default until further notice through to test if it really solves the problem. This therefore reverts commit 8221431757c775ee875a061b184b5f6f2330f928.
* | deal with hashes in ftparchive more dynamic as wellDavid Kalnischkies2014-05-091-6/+4
| | | | | | | | | | | | | | | | | | | | | | Now that libapts acquire system happily passes around hashes and can be made to support new ones without an ABI break in the future, we can free ftparchive from all the deprecation warnings the last commit introduced for it. The goal here isn't to preserve ABI as we have none to keep here, but to help avoiding introduction problems of 'new' hashes later as bugs creep into the copy&paste parts, so short/less of them is good.
* | use HashStringList in the acquire systemDavid Kalnischkies2014-05-095-43/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | It is not very extensible to have the supported Hashes hardcoded everywhere and especially if it is part of virtual method names. It is also possible that a method does not support the 'best' hash (yet), so we might end up not being able to verify a file even though we have a common subset of supported hashes. And those are just two of the cases in which it is handy to have a more dynamic selection. The downside is that this is a MAJOR API break, but the HashStringList has a string constructor for compatibility, so with a bit of luck the few frontends playing with the acquire system directly are okay.
* | use 'best' hash for source authenticationDavid Kalnischkies2014-05-092-77/+260
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Collect all hashes we can get from the source record and put them into a HashStringList so that 'apt-get source' can use it instead of using always the MD5sum. We therefore also deprecate the MD5 struct member in favor of the list. While at it, the parsing of the Files is enhanced so that records which miss "Files" (aka MD5 checksums) are still searched for other checksums as they include just as much data, just not with a nice and catchy name. LP: 1098738
* | add a simple container for HashStringsDavid Kalnischkies2014-05-091-12/+52
| | | | | | | | | | | | | | | | APT supports more than just one HashString and even allows to enforce the usage of a specific hash. This class is intended to help with storage and passing around of the HashStrings. Git-Dch: Ignore
* | tests: be able to disable "Fetched …" statistics messageDavid Kalnischkies2014-05-092-1/+2
| | | | | | | | | | | | | | | | The line contains everchanging execution statistics which is harmful for testcases as they need to filter out such lines, but this is hard so we can just add an option to disable them instead and be done. Git-Dch: Ignore
* | make test independent from the actual Install-SizeDavid Kalnischkies2014-05-081-2/+2
| | | | | | | | Git-Dch: Ignore
* | fix apt-config test now that PATH changed in 8c617819David Kalnischkies2014-05-081-1/+1
| | | | | | | | Git-Dch: Ignore
* | Revert "fix test-bug-602412-dequote-redirect by removing the aptget update ↵Michael Vogt2014-05-081-4/+1
| | | | | | | | | | | | size information" This reverts commit 773642528b6d9858c2c68ada42705ea71c8db37e.
* | Merge remote-tracking branch 'mvo/feature/build-dep-dsc2' into ↵Michael Vogt2014-05-081-0/+126
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | debian/experimental Conflicts: apt-pkg/deb/debindexfile.cc apt-pkg/deb/debindexfile.h apt-pkg/deb/debsrcrecords.cc
| * | add support for apt-get build-dep unpacked-source-dirMichael Vogt2014-04-251-0/+41
| | |
| * | add support for apt-get build-dep foo.dscMichael Vogt2014-04-221-0/+85
| | |
* | | Merge remote-tracking branch 'mvo/bugfix/update-progress-reporting' into ↵Michael Vogt2014-05-081-3/+3
|\ \ \ | | | | | | | | | | | | debian/experimental
| * | | update test-apt-progress-fdMichael Vogt2014-05-081-3/+3
| | |/ | |/|
* | | Merge remote-tracking branch 'mvo/bugfix/update-progress-reporting' into ↵Michael Vogt2014-05-084-2/+299
|\| | | | | | | | | | | debian/experimental
| * | show progress in run-testsMichael Vogt2014-05-071-1/+2
| | |
| * | Merge remote-tracking branch 'mvo/feature/apt-ftparchive-srccache2' into ↵Michael Vogt2014-05-073-1/+297
| |\ \ | | | | | | | | | | | | debian/sid
| | * | ensure "--db" also works with the new srcpkgdbMichael Vogt2014-04-071-1/+26
| | | |
| | * | ensure clean worksMichael Vogt2014-04-042-0/+13
| | | |
| | * | add test for binary cachedb and contents generationMichael Vogt2014-04-042-3/+94
| | | |
| | * | Implement CacheDB for source packages in apt-ftparchiveMichael Vogt2014-04-042-1/+168
| | | |
* | | | fix testsMichael Vogt2014-05-072-3/+3
| | | |
* | | | add BUILDDIRECTORY to PATH in the testsMichael Vogt2014-05-071-1/+2
| | | |
* | | | fix test-bug-602412-dequote-redirect by removing the aptget update size ↵Michael Vogt2014-05-071-1/+4
| | | | | | | | | | | | | | | | information
* | | | Merge remote-tracking branch 'mvo/feature/apt-install-deb' into ↵Michael Vogt2014-05-071-0/+58
|\ \ \ \ | | | | | | | | | | | | | | | debian/experimental
| * \ \ \ Merge branch 'feature/abspath' into feature/apt-install-debMichael Vogt2014-04-281-0/+4
| |\ \ \ \
| | * | | | fix testsMichael Vogt2014-04-281-0/+4
| | | | | |
| * | | | | Merge branch 'feature/abspath' into feature/apt-install-debMichael Vogt2014-04-281-1/+7
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: test/libapt/fileutl_test.cc
| | * | | | add flAbsPath() as a wrapper to realpath()Michael Vogt2014-04-281-0/+7
| | | | | |
| * | | | | Implement Popen() execv helper to avoid popen()Michael Vogt2014-04-281-0/+48
| |/ / / /
* | | | | Merge branch 'debian/sid' into debian/experimentalMichael Vogt2014-05-0760-2137/+3070
|\ \ \ \ \ | | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: apt-pkg/cachefilter.h apt-pkg/contrib/fileutl.cc apt-pkg/contrib/netrc.h apt-pkg/deb/debsrcrecords.cc apt-pkg/init.h apt-pkg/pkgcache.cc debian/apt.install.in debian/changelog
| * | | | Only do openpty() if both stdin/stdout are terminalsMichael Vogt2014-04-301-1/+1
| | | | | | | | | | | | | | | | | | | | Closes: 746434
| * | | | handle pkgnames shorter than modifiersDavid Kalnischkies2014-04-261-1/+5
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The bugreport highlights the problem with an empty package name. We fix this by 'ignoring' these so that it behaves just like "apt-get install". The deeper problem is that modifier strings can be longer than a package name in which case the comparison doesn't make sense, so don't compare then. Was not noticed so far as all modifiers are of length 1, so the only package name shorter than this is in fact the empty package name. Closes: 744940
| * | | use Google C++ Testing Framework for libapt testsDavid Kalnischkies2014-04-1628-2085/+1917
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | My commit 45df0ad2 from 26. Nov 2009 had a little remark: "The commit also includes a very very simple testapp." This was never intended to be permanent, but as usually… The commit adds the needed make magic to compile gtest statically as it is required and links it against a small runner. All previous testcase binaries are reimplemented in gtest and combined in this runner. While most code is a 1:1 translation some had to be rewritten like compareversion_test.cc, but the coverage remains the same.
| * | | clear HitEof flag in FileFd::SeekDavid Kalnischkies2014-04-163-24/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fseek and co do this to their eof-flags and it is more logic this way as we will usually seek away from the end (e.g. to re-read the file). The commit also improves the testcase further and adds a test for the binary compressor codepath (as gz, bzip2 and xz are handled by libraries) via the use of 'rev' as a 'compressor'.
| * | | Merge remote-tracking branch 'mvo/feature/helpful-apt-list' into debian/sidMichael Vogt2014-04-111-0/+13
| |\ \ \ | | | | | | | | | | | | | | | | | | | | Conflicts: test/integration/test-apt-cli-list
| | * | | Notice the user about "apt list -a" when only a single hit if foundMichael Vogt2014-04-091-0/+12
| | | |/ | | |/| | | | | | | | | | | | | | | | | If the user is using "apt list pattern" and there is only a single hit, notice about "--all-versions" as this is what the user may be interessted in
| * | | Merge remote-tracking branch 'mvo/bugfix/apt-list-rc-pkgs' into debian/sidMichael Vogt2014-04-111-0/+5
| |\ \ \
| | * | | fix apt list output for pkgs in dpkg ^rc stateMichael Vogt2014-04-081-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Packages in the "deinstall ok config-file" have no candidate or instaleld version. So they must be special cased in the apt list generation.
| * | | | consider priorities only for downloadable pkgs in resolverDavid Kalnischkies2014-04-111-0/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A package which can't be downloaded anymore is very likely dropped from a release and can therefore no longer be 'standard' (or similar). We therefore do not grant points for them anymore and demote them to prio:extra instead which helps other packages breaking them away even if they have a lower priority. The testcase was initially created by Michael Vogt and just amended.