summaryrefslogtreecommitdiff
path: root/test/solver.sh
diff options
context:
space:
mode:
authorTimo Teräs <timo.teras@iki.fi>2011-07-26 16:56:55 +0300
committerTimo Teräs <timo.teras@iki.fi>2011-07-26 17:08:43 +0300
commit79b53d4d76bbbb4235eaf709a6f07247f47316de (patch)
tree295502ba11139d40fd1621d653b3ac43753590a9 /test/solver.sh
parent169cb3a97e2ef61b2087278484c8934e0d62cf3d (diff)
downloadapk-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-xtest/solver.sh23
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
+