--- a/src/tests/cli/t_pkg_install.py Thu Feb 04 23:50:08 2010 -0800
+++ b/src/tests/cli/t_pkg_install.py Fri Feb 05 13:07:38 2010 -0800
@@ -2316,29 +2316,51 @@
leaf_template = """
open pkg%s%s@%s,5.11-0
- add depend type=require fmri=pkg:/%s_incorp
+ add depend type=require fmri=pkg:/%s_incorp%s
close
"""
+ install_hold = "add set name=pkg.depend.install-hold value=test"
+
leaf_expansion = [
- ("A","_0", "1.0", "A"),
- ("A","_1", "1.0", "A"),
- ("A","_2", "1.0", "A"),
- ("A","_3", "1.0", "A"),
-
- ("B","_0", "1.0", "B"),
- ("B","_1", "1.0", "B"),
- ("B","_2", "1.0", "B"),
- ("B","_3", "1.0", "B"),
-
- ("A","_0", "1.1", "A"),
- ("A","_1", "1.1", "A"),
- ("A","_2", "1.1", "A"),
- ("A","_3", "1.1", "A"),
-
- ("B","_0", "1.1", "B"),
- ("B","_1", "1.1", "B"),
- ("B","_2", "1.1", "B"),
- ("B","_3", "1.1", "B")
+ ("A","_0", "1.0", "A", ""),
+ ("A","_1", "1.0", "A", ""),
+ ("A","_2", "1.0", "A", ""),
+ ("A","_3", "1.0", "A", ""),
+
+ ("B","_0", "1.0", "B", ""),
+ ("B","_1", "1.0", "B", ""),
+ ("B","_2", "1.0", "B", ""),
+ ("B","_3", "1.0", "B", ""),
+
+ ("A","_0", "1.1", "A", "@1.1"),
+ ("A","_1", "1.1", "A", "@1.1"),
+ ("A","_2", "1.1", "A", "@1.1"),
+ ("A","_3", "1.1", "A", "@1.1"),
+
+ ("B","_0", "1.1", "B", "@1.1"),
+ ("B","_1", "1.1", "B", "@1.1"),
+ ("B","_2", "1.1", "B", "@1.1"),
+ ("B","_3", "1.1", "B", "@1.1"),
+
+ ("A","_0", "1.2", "A", "@1.2"),
+ ("A","_1", "1.2", "A", "@1.2"),
+ ("A","_2", "1.2", "A", "@1.2"),
+ ("A","_3", "1.2", "A", "@1.2"),
+
+ ("B","_0", "1.2", "B", "@1.2"),
+ ("B","_1", "1.2", "B", "@1.2"),
+ ("B","_2", "1.2", "B", "@1.2"),
+ ("B","_3", "1.2", "B", "@1.2"),
+
+ ("A","_0", "1.3", "A", ""),
+ ("A","_1", "1.3", "A", ""),
+ ("A","_2", "1.3", "A", ""),
+ ("A","_3", "1.3", "A", ""),
+
+ ("B","_0", "1.3", "B", ""),
+ ("B","_1", "1.3", "B", ""),
+ ("B","_2", "1.3", "B", ""),
+ ("B","_3", "1.3", "B", "")
]
incorps = [ """
@@ -2365,6 +2387,7 @@
add depend type=incorporate fmri=pkg:/[email protected]
add depend type=incorporate fmri=pkg:/[email protected]
add depend type=incorporate fmri=pkg:/[email protected]
+ add set name=pkg.depend.install-hold value=test
close
""",
@@ -2374,6 +2397,47 @@
add depend type=incorporate fmri=pkg:/[email protected]
add depend type=incorporate fmri=pkg:/[email protected]
add depend type=incorporate fmri=pkg:/[email protected]
+ add set name=pkg.depend.install-hold value=test
+ close
+ """,
+
+ """
+ open [email protected],5.11-0
+ add depend type=incorporate fmri=pkg:/[email protected]
+ add depend type=incorporate fmri=pkg:/[email protected]
+ add depend type=incorporate fmri=pkg:/[email protected]
+ add depend type=incorporate fmri=pkg:/[email protected]
+ add set name=pkg.depend.install-hold value=test.A
+ close
+ """,
+
+ """
+ open [email protected],5.11-0
+ add depend type=incorporate fmri=pkg:/[email protected]
+ add depend type=incorporate fmri=pkg:/[email protected]
+ add depend type=incorporate fmri=pkg:/[email protected]
+ add depend type=incorporate fmri=pkg:/[email protected]
+ add set name=pkg.depend.install-hold value=test.B
+ close
+ """,
+
+ """
+ open [email protected],5.11-0
+ add depend type=incorporate fmri=pkg:/[email protected]
+ add depend type=incorporate fmri=pkg:/[email protected]
+ add depend type=incorporate fmri=pkg:/[email protected]
+ add depend type=incorporate fmri=pkg:/[email protected]
+ add set name=pkg.depend.install-hold value=test.A
+ close
+ """,
+
+ """
+ open [email protected],5.11-0
+ add depend type=incorporate fmri=pkg:/[email protected]
+ add depend type=incorporate fmri=pkg:/[email protected]
+ add depend type=incorporate fmri=pkg:/[email protected]
+ add depend type=incorporate fmri=pkg:/[email protected]
+ add set name=pkg.depend.install-hold value=test.B
close
""",
@@ -2381,6 +2445,7 @@
open [email protected],5.11-0
add depend type=incorporate fmri=pkg:/[email protected]
add depend type=incorporate fmri=pkg:/[email protected]
+ add set name=pkg.depend.install-hold value=test
close
""",
@@ -2388,8 +2453,25 @@
open [email protected],5.11-0
add depend type=incorporate fmri=pkg:/[email protected]
add depend type=incorporate fmri=pkg:/[email protected]
+ add set name=pkg.depend.install-hold value=test
close
- """]
+ """,
+
+ """
+ open [email protected],5.11-0
+ add depend type=incorporate fmri=pkg:/[email protected]
+ add depend type=incorporate fmri=pkg:/[email protected]
+ add set name=pkg.depend.install-hold value=test
+ close
+ """,
+ """
+ open [email protected],5.11-0
+ add depend type=incorporate fmri=pkg:/[email protected]
+ add depend type=exclude fmri=pkg:/pkgB_0
+ add set name=pkg.depend.install-hold value=test
+ close
+ """
+ ]
bug_7394_incorp = """
open [email protected],5.11-0
@@ -2503,7 +2585,7 @@
self.pkg("install -v [email protected] pkgA_1")
self.pkg("list")
self.pkg("verify [email protected] [email protected] [email protected]")
- self.pkg("image-update -v")
+ self.pkg("install [email protected]")
self.pkg("list [email protected] [email protected] [email protected]")
self.pkg("uninstall '*'")
# try nested incorporations
@@ -2514,12 +2596,39 @@
self.pkg("install -v [email protected]", exit=1) # fixed by [email protected]
# try image update
self.pkg("image-update -v")
- self.pkg("list [email protected] [email protected] [email protected] [email protected] [email protected]")
+ self.pkg("list [email protected]")
+ self.pkg("list [email protected]")
+ self.pkg("list [email protected]")
+ self.pkg("list [email protected]")
+ self.pkg("list [email protected]")
self.pkg("uninstall '*'")
# what happens when incorporation specified
# a package that isn't in the catalog
self.pkg("install bug_7394_incorp")
self.pkg("install pkg1", exit=1)
+ self.pkg("uninstall '*'")
+ # test pkg.depend.install-hold feature
+ self.pkg("install -v [email protected] pkgA_1")
+ self.pkg("list [email protected]")
+ self.pkg("list [email protected]")
+ # next attempt will fail because incorporations prevent motion even though
+ # explicit dependency exists from pkg to incorporation.
+ self.pkg("install [email protected]", exit=1)
+ # test to see if we could install both; presence of incorp causes relaxation
+ # of pkg.depend.install-hold
+ self.pkg("install -nv [email protected] [email protected]")
+ # this attempt also succeeds because pkg.depend.install-hold is relaxed
+ # since A_incorp is on command line
+ self.pkg("install [email protected]")
+ self.pkg("list [email protected]")
+ self.pkg("list [email protected]")
+ # now demonstrate w/ version 1.2 subincorps that master incorp
+ # prevents upgrade since pkg.depend.install-hold of master != other incorps
+ self.pkg("install [email protected]")
+ self.pkg("install [email protected]", exit=1)
+ self.pkg("install [email protected]")
+ self.pkg("list [email protected]")
+ self.pkg("list [email protected]")
class TestMultipleDepots(pkg5unittest.ManyDepotTestCase):
# Only start/stop the depot once (instead of for every test)