17941 driver actions can't seem to shake their aliases
authorDanek Duvall <danek.duvall@oracle.com>
Wed, 23 Mar 2011 09:11:55 -0700
changeset 2273 78f75ad858b7
parent 2272 d81ea073d050
child 2274 1c8cd2ff57d3
17941 driver actions can't seem to shake their aliases
src/modules/actions/driver.py
src/tests/cli/t_pkg_install.py
--- a/src/modules/actions/driver.py	Tue Mar 22 15:01:13 2011 -0700
+++ b/src/modules/actions/driver.py	Wed Mar 23 09:11:55 2011 -0700
@@ -339,13 +339,13 @@
                 rem_clone = oclone - nclone
 
                 for i in add_alias:
-                        args = add_base + ("-i", '"%s"' % i, self.attrs["name"])
+                        args = add_base + ("-i", '%s' % i, self.attrs["name"])
                         self.__call(args, "driver (%(name)s) upgrade (addition "
                             "of alias '%(alias)s')",
                             {"name": self.attrs["name"], "alias": i})
 
                 for i in rem_alias:
-                        args = rem_base + ("-i", '"%s"' % i, self.attrs["name"])
+                        args = rem_base + ("-i", '%s' % i, self.attrs["name"])
                         self.__call(args, "driver (%(name)s) upgrade (removal "
                             "of alias '%(alias)s')",
                             {"name": self.attrs["name"], "alias": i})
--- a/src/tests/cli/t_pkg_install.py	Tue Mar 22 15:01:13 2011 -0700
+++ b/src/tests/cli/t_pkg_install.py	Wed Mar 23 09:11:55 2011 -0700
@@ -2481,6 +2481,18 @@
                     close
                 """
 
+                self.devalias10 = """
+                    open devalias@1,5.11
+                    add driver name=zerg alias=pci8086,1234 alias=pci8086,4321
+                    close
+                """
+
+                self.devalias20 = """
+                    open devalias@2,5.11
+                    add driver name=zerg alias=pci8086,5555
+                    close
+                """
+
                 self.badhardlink1 = """
                     open [email protected],5.11-0
                     add hardlink path=foo target=bar
@@ -2984,6 +2996,33 @@
                 self.failUnless(len(dllines) == 4, msg=dllines)
                 assertContents(dllines, ["zerg2", "zorg", "borg", "zork"])
 
+        def test_driver_aliases_upgrade(self):
+                """Make sure that aliases properly appear and disappear on
+                upgrade.  This is the result of a bug in update_drv, but it's
+                not a bad idea to test some of this ourselves."""
+
+                # driver actions are not valid except on OpenSolaris
+                if portable.util.get_canonical_os_name() != "sunos":
+                        return
+
+                self.pkgsend_bulk(self.rurl, [self.devicebase, self.devalias10,
+                    self.devalias20])
+
+                self.image_create(self.rurl)
+                self.pkg("install devicebase devalias@1")
+                self.pkg("update devalias")
+                self.pkg("verify devalias")
+
+                daf = open(os.path.join(self.get_img_path(),
+                    "etc/driver_aliases"))
+                dalines = daf.readlines()
+                daf.close()
+
+                self.assert_(len(dalines) == 1, msg=dalines)
+                self.assert_(",1234" not in dalines[0])
+                self.assert_(",4321" not in dalines[0])
+                self.assert_(",5555" in dalines[0])
+
         def test_uninstall_without_perms(self):
                 """Test for bug 4569"""