summaryrefslogtreecommitdiff
path: root/pactest/tests
Commit message (Collapse)AuthorAge
* ensure chk_fileconflicts reads entire file listDan McGee2008-02-11
| | | | | | | | | | | | If the end of the pB list was reached before the end of pA, we failed to read any remaining files from the pA list. Add an additional loop to ensure all entries of pA are added to the return list regardless of whether we have reached the end of pB. This new loop also eliminates the now-unnecessary check for a null pB, as we need to ensure we are excluding directories in the resulting output anyway. Signed-off-by: Dan McGee <dan@archlinux.org>
* Fixes file relocation pactestsNagy Gabor2008-02-11
| | | | | | | | | | | | | This patch fixes upgrade040.py and upgrade041.py (041 now fails!): * the old pactests didn't check the existence of the relocated file * upgrade041.py was broken due to a typo (missing comma) New upgrade046.py pactest was added (derived from the fixed upgrade041.py). This fails because the file relocation check is _hacked_ to conflict.c, and _alpm_db_find_fileconflicts is not called in case of --force. Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* pactest: make more resiliant to missing filesDan McGee2008-02-07
| | | | | | | | | | | | Add a bunch of guards around function calls like open() and stat() to ensure we are not going to get ourselves a python error. This made implementing and testing the new upgrade045 pactest much easier, as its whole purpose was to create a dead symlink and debug a segfault of pacman (which caused no DB entries to be written) to support the previously checked in fix for FS#9235 (commit 0c2206f542ce6df2606586d43f190cd5a423fb13). Both of these cases are now non-fatal in pactest. Signed-off-by: Dan McGee <dan@archlinux.org>
* Change the versioned provision format.Chantry Xavier2008-01-14
| | | | | | | | | | | | | | | | | | | | | | Change the 'provname provver' format to 'provname=provver'. In .PKGINFO, the provisions are copied from the PKGBUILD without quotes. So the provision version was actually handled as a different provision... See FS#9171. Dan: Unfortunately we have to change our original specification for versioned provisions with this patch, but it ends up being the simpler and cleaner solution in the long run, and if there is any time to change it the time is now before many packages have been built. Keeping the ' ' based format would have required us to do special parsing in repo-add, as well as being susceptible to users not using quotes in their provides array. Hopefully this will resolve the issues we had with our initial plan. Sorry for the confusion. Acked-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* Rename provision related pactests to provision*.py.Chantry Xavier2008-01-14
| | | | | | | | Also add 3 new pactests to cover both the -U and -S operations for versioned provisions. Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* Move the fallback on providers from backend to frontend.Chantry Xavier2008-01-09
| | | | | | | | | | | This reverts commit e28973169d2e5eda8b64ebdda11ece0dc761d978. This code might fit better in the frontend than in the backend finally. Ref: http://www.archlinux.org/pipermail/pacman-dev/2007-November/010150.html I also changed it for fixing FS#8763 : if there is exactly one provider, pacman will pull it and print a warning. if there are several providers, pacman will list them and fail. It's up to the user to pick one. Add sync501 pactest to reflect that.
* conflict.c : fix for FS#8156, detect conflict between symlink and dir.Chantry Xavier2008-01-06
| | | | | | | | | | | | | | | The previous fileconflict check (package vs filesystem) skipped the conflict when the file on the filesystem was a directory or a symlink to a directory, no matter what the file in the package was. Now, the conflict will only be skipped if the file in the package is a directory (so compatible with a dir or a dir symlink on the filesystem). So in the case of 8156 (new fileconflict003 pactest for this case), instead of silently ignoring the extraction of the test symlink, pacman will now fail because of a file conflict between the test symlink in the pkg2 package and the test directory on the filesystem. Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* sync.c: add sanity check so we don't dereference a null pointerDan McGee2008-01-05
| | | | | | | | | | Originally noticed in FS#9024, but was fixed in previous changes anyway. However, it doesn't hurt to still check it. Also add a pactest from Chantry Xavier for the original problem to ensure we can't reproduce it. Signed-off-by: Dan McGee <dan@archlinux.org>
* conflict.c : fix for upgrade042.Chantry Xavier2008-01-05
| | | | | | | | | | | Thanks to the proactive backup handling, we don't need to add the moving file to the skip_add list. The backup handling will make sure nothing gets overwritten. Ref: http://www.archlinux.org/pipermail/pacman-dev/2007-December/010610.html Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* add.c : fix upgrade026 pactest.Chantry Xavier2008-01-05
| | | | | | | | | | | | | | | This was the case of the bash packaging error where a file was removed from the package but not the backup array. I just added a sanity check so that only the files from the backup array that are also in the filelist are used. I had to edit upgrade026 pactest slightly : it required the file to be copied to .pacsave instead of moved. But just moving it should be enough, as we agreed on the ML : http://www.archlinux.org/pipermail/pacman-dev/2007-December/010440.html Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* new upgade042 pactest + bugfix in chk_filedifference.Chantry Xavier2008-01-01
| | | | | | | | | | | | This adds a pactest for the relocation of a config file between two packages (case of etc/profile moving from bash to filesystem). While running this pactest, I found out that chk_filedifference didn't work correctly with an empty list as second argument. So that's fixed now. Ref: http://www.archlinux.org/pipermail/pacman-dev/2007-December/010610.html Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* add a new upgrade026 pactest for backup handling.Chantry Xavier2007-12-29
| | | | | | | | | | | | This is the bash case when the /etc/profile file was removed by error from the package, but stayed in the backup array. Ref: http://www.archlinux.org/pipermail/arch-dev-public/2007-December/003556.html Also fixed a little typo in add.c, but it's disabled code. Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* fix two broken pactests because of date localization.Chantry Xavier2007-12-28
| | | | | | | | | | query002 and sync1100 had PACMAN_OUTPUT rules that looked at the build/install date (localized). Instead of looking at the month name, it will now check the year, which should be safer. I also had to add another pactest (query005) for keeping the same coverage. Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* PM_DEP_MOD_LT and PM_DEP_MOD_GT depmods addedNagy Gabor2007-12-19
| | | | | | | | You can use foo<2.0 and foo>2.0 as depend add046.py and add047.py pactests were added to check this Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> Signed-off-by: Dan McGee <dan@archlinux.org>
* Add real scriptlet checking for pactestAaron Griffin2007-12-10
| | | | | | | | | | Due to commit da1222de2e30aabcae9d17bbfa10bbf0672338af, we can now use fakechroot to completely run scriptlet pactests Use "which" functionality so as not to REQUIRE it for all users Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* Add a lot more tests (and some pactest fixes) to -Si and -Qi testsDan McGee2007-12-02
| | | | Signed-off-by: Dan McGee <dan@archlinux.org>
* Add more pactests to increase code coverageDan McGee2007-12-02
| | | | | | | These new tests test the following ops at least once: -Ss, -Si, -Sl, -Sp, -Qs, -Qi, -T Signed-off-by: Dan McGee <dan@archlinux.org>
* Add 4 new pactests to get better code coverage by pactestDan McGee2007-12-02
| | | | | | | | I started playing around with gcov today and it showed a few places in the code that we don't test at all. This is the start of ensuring that we execute most of the code in our codebase. Signed-off-by: Dan McGee <dan@archlinux.org>
* New sync1005 and sync1006 pactestsNagy Gabor2007-12-01
| | | | | | | | This pactest checks what happens if a package exists in two sync repos. Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> [Dan: added sync1006, same test with different versions] Signed-off-by: Dan McGee <dan@archlinux.org>
* Fix for sync1003 and sync1004 pactestsNagy Gabor2007-11-25
| | | | | | | | | | | | | | | checkdeps and resolvedeps now take both a remove list and an install list as arguments, allowing dependencies to be calculated correctly. This broke the sync990 pactest, but this pactest used dependencies and provides in an unusual way, so it has been changed. Dan: the sync990 pactest was just plain wrong. It didn't satisfy the dependencies correctly, so should never have succeeded. Signed-off-by: Chantry Xavier <shiningxc@gmail.com> [Dan: some variable renaming, clarification in commit message] Signed-off-by: Dan McGee <dan@archlinux.org>
* Remove -F/--freshen operationDan McGee2007-11-21
| | | | | | | | | | This operation made sense in the days before sync DBs existed, but it no longer has the same usefulness it once did. Signed-off-by: Dan McGee <dan@archlinux.org> Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
* Versioned provisions.Nagy Gabor2007-11-18
| | | | | | | | | | | | | | | | | | | This patch introduces versioned provisions in "provision 1.0-1" format. _alpm_db_whatprovides was modified accordingly (added sync500.py), alpm_depcmp was modified accordingly (add043.py passes now; added add044.py and add045.py). Notes: alpm_db_search now uses the whole versioned %PROVIDES% string in its search. debug logging was simplified in alpm_depcmp. Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> [Xavier: fixed a few typos, duplicate const strings with strdup before modifying them, put some debugging back in alpm_depcmp, minor code cleanups (var/function renaming), added a note in PKGBUILD man page.] Signed-off-by: Chantry Xavier <shiningxc@gmail.com> [Dan: made strcmp checks clearer, added a comment] Signed-off-by: Dan McGee <dan@archlinux.org>
* new trans001.py pactestNagy Gabor2007-11-14
| | | | | | | | The pactest demonstrates what happens if fileconflict was found after the removal part of a sync transaction. Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> Signed-off-by: Dan McGee <dan@archlinux.org>
* new add043.py pactestNagy Gabor2007-11-14
| | | | | | | | Currently alpm_depcmp uses pkg->version as a version number for provisions, which is odd. The failure of the pactest demonstrates this. Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> Signed-off-by: Dan McGee <dan@archlinux.org>
* Add pactest for IgnoreGroup.Nathan Jones2007-11-13
| | | | | | | Also tell pactest to reset IgnoreGroup like it does for IgnorePkg. Signed-off-by: Nathan Jones <nathanj@insightbb.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* Add two requiredby pactestsChantry Xavier2007-11-11
| | | | | | | | One currently should succeed (006), and 005 fails. requiredby005.py is originally from Nagy Gabor <ngaba@petra.hos.u-szeged.hu>. Signed-off-by: Dan McGee <dan@archlinux.org>
* Add a symlink-based pactestDan McGee2007-11-11
| | | | | | This passes with both the upcoming 3.1 devel tree and the 3.0.6 pacman code. Signed-off-by: Dan McGee <dan@archlinux.org>
* simple pactest renaming : split conflict* into depconflict* and fileconflict*.Chantry Xavier2007-10-29
| | | | | Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
* extend type001 pactest with a symlink.Chantry Xavier2007-10-28
| | | | Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* Fix scriptlet pactest cases so they 'succeed' againDan McGee2007-10-14
| | | | Signed-off-by: Dan McGee <dan@archlinux.org>
* Add two new pactests to check symlink behaviorNagy Gabor2007-10-09
| | | | Signed-off-by: Dan McGee <dan@archlinux.org>
* Add new (failing) sync pactestNagy Gabor2007-10-08
| | | | Signed-off-by: Dan McGee <dan@archlinux.org>
* libalpm/add.c: fix backup array issueDan McGee2007-09-23
| | | | | | | | | | | | As seen with the recent upgrade of pacman and the removal of the pacman.d/current mirrorlist, files that were formerly in the backup array get deleted upon their removal, which could be dangerous. Instead, we should use the combined backup array of the old and new package. This fix should address this issue in a relatively straightforward way. In addition, old files should be moved to pacsave locations as expected. Signed-off-by: Dan McGee <dan@archlinux.org>
* Add sync044 pactest : A dependency induces a replacement.Chantry Xavier2007-09-23
| | | | | | | | | | | That is the problem mentioned by Nagy there (with suggestions for fixing it) : http://www.archlinux.org/pipermail/pacman-dev/2007-August/009082.html If a dependency conflicts with a local package and has to replace it, the PM_SYNC_TYPE_DEPEND information is lost, and the resulting install reason is wrong (the package is marked as explictly installed). Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* Add two pactests with broken requiredby, and two about pacsave handling.Chantry Xavier2007-09-23
| | | | | | | | | | | | | | | | | remove048 is the case mentioned there (fails in 3.0 but works in 3.1) : http://www.archlinux.org/pipermail/pacman-dev/2007-September/009294.html It's the same as remove046 with -R instead of -Rc. sync060 is a case reported this morning on IRC : a pacman -Su wanted to replace gensplashutils by gensplash, but pacman said gensplashutils was required by initscripts-gensplash, while initscripts-gensplash was not even installed. This is also fixed in the current 3.1 code though. upgrade02{4,5} are the backup handling problem I described there : http://www.archlinux.org/pipermail/pacman-dev/2007-September/009376.html Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* Add a few pactests collected over time.Chantry Xavier2007-09-06
| | | | | | | | | | | | | | | | remove047 : Remove a package required by other packages conflict004 : a package conflicts with itself http://www.archlinux.org/pipermail/pacman-dev/2007-August/009077.html sync400 : Install package with dep that conflicts with older version of package sync401 : Ensure we choose provider already in target list http://www.archlinux.org/pipermail/pacman-dev/2007-July/009041.html sync402/sync403 (failing) : Choice between two providers http://www.archlinux.org/pipermail/pacman-dev/2007-July/008787.html Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* Add sync1003 pactest.Nagy Gabor2007-08-20
| | | | | | | | | | | | | | | | The sync package pkg3 depends on the sync package pkg2, but pkg1 replaces pkg2. So pkg2 is added to the remove list. When checkdeps checks if pkg2 can be removed, it looks at the packages that require pkg2 (with the RequiredBy field of pkg2), but this doesn't contain pkg3 at this point. RequiredBy fields are only updated after the packages are installed. Proposed solution : checkdeps should know both the remove and upgrade list to decide properly. Reference: http://www.archlinux.org/pipermail/pacman-dev/2007-July/008972.html Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* libalpm/add.c,trans.c : cleanup of requiredby handling.Nagy Gabor2007-08-20
| | | | | | | | | | | | | | | | | | | | This patch cleans up and fix the _alpm_trans_update_depends function and ensure that all requiredby fields are filled in case of multiple satisfiers (previously, the handling of mutliple satisfiers in that function was inconsistent). This makes a special case handling of requiredby in commit_single_pkg() obsolete, and so allows cleaning that code as well. Also fixed upgrade056 pactest because : 1) the requiredby fields were wrong, and this wouldn't happen with the fixed _alpm_trans_update_depends(). 2) this is a very unusual case anyway (and handling all corner cases combined to a broken database seems nearly impossible to achieve). References : http://www.archlinux.org/pipermail/pacman-dev/2007-July/008919.html http://www.archlinux.org/pipermail/pacman-dev/2007-July/008920.html Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* Add two pactest for versioned conflicts.Nagy Gabor2007-08-12
| | | | | | | | A side effect of the previous commit ( ea9a756eeaca7398c0860b55f8abe2932ad195bd ) is that it's now possible to use versioned conflicts. Add two new conflict pactests for showing it. Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* add conflict001 pactest.Nagy Gabor2007-07-20
| | | | Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* Add sync1002 pactest.Nagy Gabor2007-07-20
| | | | | | | Reference: http://www.archlinux.org/pipermail/pacman-dev/2007-July/008971.html Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* Add remove046 pactest for FS#7622.Chantry Xavier2007-07-16
| | | | Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* Add new sync012 pactest.Chantry Xavier2007-07-15
| | | | | | | This test installs three packages with a circular dependency, to check everything still goes fine in that case. Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* Add --asdeps option to pacmanDan McGee2007-07-15
| | | | | | | | | | This replaces the former -D operation that was undocumented and rather hacky. It can be used with add, upgrade, or sync transactions and will affect all packages installed. Should close FS #7193. Also tell makepkg to use this new flag. Signed-off-by: Dan McGee <dan@archlinux.org>
* libalpm/deps.c : cleanup + little fix for resolvedeps.Nagy Gabor2007-07-15
| | | | | | | | The resolvedeps function was a bit negligent, as showed by the sync011 pactest. Reference : http://www.archlinux.org/pipermail/pacman-dev/2007-July/008782.html Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* remove sync022 and sync023 pactest.Chantry Xavier2007-07-13
| | | | | | | | | | | | | | | Currently the replaces flag is only used for forcing the replacement of package (eg because of a renaming) on sysupgrade operation. If the replaces flag should also be used for resolving conflicts, then it should be discussed and specified correctly first. References: http://bugs.archlinux.org/task/7415#comment17207 http://www.archlinux.org/pipermail/pacman-dev/2007-June/008553.html commit which introduced the replace flag : 4fcec8f03ff790bfb23b826eee169bc9c0b00142 Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* Add new pactest that is backwards of sync022Dan McGee2007-07-11
| | | | | | | | | | | sync022 was added here: 39b654965580bfb7dc0ab72b8c901fbf7729a568 This pactest reverses the installed package to see if it is correctly picked, in order to test some further changes to this depcheck code that currently makes sync022 fail. Signed-off-by: Dan McGee <dan@archlinux.org>
* add remove045 pactest.Chantry Xavier2007-07-10
| | | | | | | Another test a bit more complicated for -Rs, to prevent regression if removedeps is changed. Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* add remove044 pactest.Nagy Gabor2007-07-10
| | | | | | | | | | | This indicates a problem in the current removedeps function (no version checking) for which Nagy proposed a fix here : http://www.archlinux.org/pipermail/pacman-dev/2007-June/008539.html But as he mentioned there, a better fix might be to use the checkdeps function in the removedeps one. Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
* Add mode and type checking to pactest for filesDan McGee2007-07-01
| | | | | | | | | | | | | Add the ability to check the permissions and type of a file within the framework of pactest. Two new rules can be used: self.addrule("FILE_TYPE=bin/foo|file") self.addrule("FILE_MODE=bin/bar|644") TODO: add the ability to add different types of files (eg links) via the test package building framework, and add the ability to change the modes on files. Signed-off-by: Dan McGee <dan@archlinux.org>