aboutsummaryrefslogtreecommitdiffstats
path: root/test
Commit message (Collapse)AuthorAgeFilesLines
...
* test: clean up solver.shTimo Teräs2012-02-241-5/+9
| | | | | * take list of tests to run (and default to all) * merge the awk invocation to a function
* solver: non preferred actions are worse then non preferred pinningTimo Teräs2012-02-243-0/+39
| | | | | | | | Otherwise we might start to change packages unexpectedly when not upgrading. This also fixes some other things the solver might've decided to do. Add also few test cases to detect bad behaviour.
* pkg, db: use 's' for source repository tags instead of 'p'Timo Teräs2012-02-241-2/+2
| | | | Will use 'p' for provides.
* test: improve pinning testsTimo Teräs2012-02-249-4/+77
|
* test: rewrite the testing framework to use the real appletsTimo Teräs2012-02-2352-115/+208
| | | | also merge the expected output to the *.test files.
* solver: fix regression from "calculate branch minimum penalty early"Timo Teräs2012-01-201-2/+1
| | | | | | | Forgot to reset per-name penalty when it got locked by apply_decision. This also fine tunes compare_package_preference() to always prefer packages specified on command line speeding up calculation certain complicated solutions.
* solver: calculate branch minimum penalty earlyTimo Teräs2012-01-171-1/+2
| | | | | | | | | Previously we would cache the penalty when evaluating the final solution, and adding that until we backtrack to first topology position changing that penalty. However, we can just keep track of minimum penalty based on name state, and add it. This allows us to bail out early on bad branches because we know in advance how things will turn out.
* solver, db: implement repository pinningTimo Teräs2011-10-299-0/+37
| | | | | | | | | | | | | | | | | | Improves /etc/apk/repositories format so you can say: http://nl.alpinelinux.org/alpine/v2.3/main @edge http://nl.alpinelinux.org/alpine/edge/main @testing http://nl.alpinelinux.org/alpine/edge/testing After which you can pin dependencies to these tags using: apk add stableapp newapp@edge bleedingapp@testing Apk will now by default only use the untagged repositories, but adding a tag to specific dependency: 1. will prefer that tag for the name 2. allowing pulling in dependencies from that tag (though, it prefers untagged packages to satisfy deps if possible) fixes #575
* solver, pkg: implement versioned conflictsTimo Teräs2011-10-243-0/+23
| | | | | One can now say in dependency "!foo<2" which means, that if foo is installed, it needs to be >=2, but it's not a required dependency.
* solver: preference scoringTimo Teräs2011-10-144-9/+7
| | | | | Should now choose packages better if the best available version is uninstallable for some reason.
* solver: report 'complete' solutions with errorsTimo Teräs2011-09-054-10/+4
| | | | | | Allow to select packages that conflict in case we are looking for errors. This allows 'add --force' to install (on boot) the set of packages with minimum conflicts.
* solver: reintroduce install_if supportTimo Teräs2011-08-1814-12/+80
| | | | | | * each package name has two sorting positions, one which causes install_if triggers to be run, and other for bulk dependencies * fix also inverted ordering of package installations
* solver: generate proper error messagesTimo Teräs2011-08-0122-13/+56
| | | | | | | | | * the solver no longer does look-ahead locking of names (could be possibly optimized later); instead names are now always ordered strictly to properly detect the package names which are unsolveable * basic error tests added, so we can see the most likely problem in dependencies easily
* solver: don't consider package that we can't haveTimo Teräs2011-07-272-0/+1
| | | | | Packages that need (re-)installation but which are not available, are excluded now properly.
* solver: permutate each preferred solution firstTimo Teräs2011-07-275-0/+17
| | | | The first found solution is the most preferred one then.
* solver: new package selection logic (which is not yet used)Timo Teräs2011-07-2623-5/+155
| | | | | | | | | | | | | * basic code for a backtracking, forward checking dependency satisfier * works better when there are tricky dependencies to solve (when can't just upgrade everything to most preferred versions) * the new code always evaluates all of 'world' constraints (old code just does incremental updates based on heuristics) * is probably somewhat slower than old code (probably unnoticeable difference in most cases) * makes easier to write support for provides and repository pinning * test applet and a bunch of test cases added which uses the new code * from the old feature set install_if is not yet implemented
* test: check if upgrade works when package is missing in repoNatanael Copa2010-06-151-0/+7
|
* test: dont run sh manually but respect #!/bin/sh in each testNatanael Copa2010-06-159-10/+13
| | | | That way we can set sh options case by case
* test: initial testsuiteNatanael Copa2010-06-1517-0/+422
|
* test: add test cases for version comparingTimo Teras2009-11-062-0/+741
so i don't get to break version compares again.