summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorTimo Teräs <timo.teras@iki.fi>2017-12-12 15:14:25 +0200
committerTimo Teräs <timo.teras@iki.fi>2017-12-12 15:16:52 +0200
commit8e7fd3e06f300bd76b659db1164da1ee12f16870 (patch)
tree1ca6d6f34264d69026ae44f38cb5f41824a584fa /test
parent0700e8318fc5c88c5965320f6085f973e25dbeda (diff)
downloadapk-tools-8e7fd3e06f300bd76b659db1164da1ee12f16870.tar.gz
apk-tools-8e7fd3e06f300bd76b659db1164da1ee12f16870.tar.bz2
apk-tools-8e7fd3e06f300bd76b659db1164da1ee12f16870.tar.xz
apk-tools-8e7fd3e06f300bd76b659db1164da1ee12f16870.zip
solver: fix potential install_if processing failure, fixes #8237
In discovery phase, there was logic to not process packages multiple times. However, that logic failed to account the package's depth and install_if state for the name being processed. This caused install_if processing failure in certain topologies of the dependency graph. Adds also a test case that should catch this issue reliably.
Diffstat (limited to 'test')
-rw-r--r--test/installif1.repo20
-rw-r--r--test/installif5.test8
2 files changed, 28 insertions, 0 deletions
diff --git a/test/installif1.repo b/test/installif1.repo
index 09b6760..3990209 100644
--- a/test/installif1.repo
+++ b/test/installif1.repo
@@ -46,3 +46,23 @@ I:1
D:app
i:app bar
+C:Q1/hQ3fH2AzuTwJVGOz+keypXhXKY=
+P:dam
+V:1
+S:1
+I:1
+
+C:Q1/hQ3fH2AzuTwJVGfz+keypXhXKY=
+P:dam-babel
+V:1
+S:1
+I:1
+p:cmd:babel
+
+C:Q1/hQ3fH2AguTwJVGOz+keypXhXKY=
+P:dam1-babel
+V:1
+S:1
+I:1
+i:dam dam-babel
+p:cmd:babel
diff --git a/test/installif5.test b/test/installif5.test
new file mode 100644
index 0000000..a0c707b
--- /dev/null
+++ b/test/installif5.test
@@ -0,0 +1,8 @@
+@ARGS
+--test-repo installif1.repo
+add dam dam-babel cmd:babel
+@EXPECT
+(1/3) Installing dam-babel (1)
+(2/3) Installing dam (1)
+(3/3) Installing dam1-babel (1)
+OK: 0 MiB in 0 packages