diff options
author | Timo Teräs <timo.teras@iki.fi> | 2011-07-26 16:56:55 +0300 |
---|---|---|
committer | Timo Teräs <timo.teras@iki.fi> | 2011-07-26 17:08:43 +0300 |
commit | 79b53d4d76bbbb4235eaf709a6f07247f47316de (patch) | |
tree | 295502ba11139d40fd1621d653b3ac43753590a9 /test/solver.sh | |
parent | 169cb3a97e2ef61b2087278484c8934e0d62cf3d (diff) | |
download | apk-tools-79b53d4d76bbbb4235eaf709a6f07247f47316de.tar.gz apk-tools-79b53d4d76bbbb4235eaf709a6f07247f47316de.tar.bz2 apk-tools-79b53d4d76bbbb4235eaf709a6f07247f47316de.tar.xz apk-tools-79b53d4d76bbbb4235eaf709a6f07247f47316de.zip |
solver: new package selection logic (which is not yet used)
* 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
Diffstat (limited to 'test/solver.sh')
-rwxr-xr-x | test/solver.sh | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/test/solver.sh b/test/solver.sh new file mode 100755 index 0000000..d819c70 --- /dev/null +++ b/test/solver.sh @@ -0,0 +1,23 @@ +#!/bin/sh + +APK_TEST=../src/apk_test + +fail=0 +for test in *.test; do + bn=$(basename $test .test) + $APK_TEST $(cat $test) &> $bn.got + if ! cmp $bn.expect $bn.got 2> /dev/null; then + fail=$((fail+1)) + echo "FAIL: $test" + diff -ru $bn.expect $bn.got + else + echo "OK: $test" + fi +done + +if [ "$fail" != "0" ]; then + echo "FAIL: $fail failed test cases" +fi + +exit $fail + |