Пример #1
0
    def enable(self):
        XorgDriverHandler.enable(self)

        # Set the alternative to PowerVR SGX (EGL)
        pvr_omap4_alternative = self._alternatives.get_alternative_by_name(
                self.pkg_alternative, ignore_pattern='-updates')
        if not pvr_omap4_alternative:
            logging.error('%s: get_alternative_by_name(%s) returned nothing' % (
                self.id(), self.pkg_alternative))
            return
        self._alternatives.set_alternative(pvr_omap4_alternative)
Пример #2
0
    def enable(self):
        XorgDriverHandler.enable(self)

        # Set the alternative to PowerVR SGX (EGL)
        pvr_omap4_alternative = self._alternatives.get_alternative_by_name(
            self.pkg_alternative, ignore_pattern='-updates')
        if not pvr_omap4_alternative:
            logging.error('%s: get_alternative_by_name(%s) returned nothing' %
                          (self.id(), self.pkg_alternative))
            return
        self._alternatives.set_alternative(pvr_omap4_alternative)
Пример #3
0
    def enable(self):
        XorgDriverHandler.enable(self)

        # Set the alternative to cdv
        cdv_alternative = self._alternatives.get_alternative_by_name(
            self.alternative_name, ignore_pattern='-updates')
        if not cdv_alternative:
            logging.error('%s: get_alternative_by_name(%s) returned nothing' %
                          (self.id(), self.package))
            return
        self._alternatives.set_alternative(cdv_alternative)
        subprocess.call(['update-initramfs', '-u'])
        subprocess.call(['update-initramfs', '-u', '-k', os.uname()[2]])
Пример #4
0
 def enable(self):
     XorgDriverHandler.enable(self)
     
     # Set the alternative to FGLRX
     fglrx_alternative = self._alternatives.get_alternative_by_name(self.package)
     if not fglrx_alternative:
         logging.error('%s: get_alternative_by_name(%s) returned nothing' % (
             self.id(), self.package))
         return
     self._alternatives.set_alternative(fglrx_alternative)
     other_fglrx_alternative = self._other_alternatives.get_alternative_by_name(self.package)
     self._other_alternatives.set_alternative(other_fglrx_alternative)
     subprocess.call(['update-initramfs', '-u'])
     subprocess.call(['update-initramfs', '-u', '-k', os.uname()[2]])
Пример #5
0
    def test_xorg_driver_nobackup_nodriver(self):
        '''XorgDriverHandler with no xorg.conf backup and no explicit "Driver"'''
        
        h = XorgDriverHandler(self.backend, 'vanilla3d', 'mesa-vanilla', None,
            None, extra_conf_options={'SuperSpeed': 'true'}, 
            add_modules=['glx'], disable_modules=['dri2'], remove_modules=['dri'],
            name='Vanilla accelerated graphics driver')

        self.failIf(h.enable())
        conf = open(OSLib.inst.xorg_conf_path).read()
        # should keep the "Driver" as it was before
        self.assert_(re.search('^\s*driver\s*"vanilla"\s*$', conf, re.I|re.M))
        self.assert_(re.search('^\s*option\s*"SuperSpeed"\s*"true"\s*$', conf, re.I|re.M))
        self.assert_(re.search('^\s*load\s*"glx"\s*$', conf, re.I|re.M))
        self.assert_(re.search('^\s*disable\s*"dri2"\s*$', conf, re.I|re.M))
        self.failIf(re.search('^\s*load\s*"dri"\s*$', conf, re.I|re.M))

        # unlink backup file
        os.unlink(os.path.join(OSLib.inst.backup_dir, 'mesa-vanilla.oldconf'))

        self.failIf(h.disable())
        conf = open(OSLib.inst.xorg_conf_path).read()
        self.assert_(re.search('^\s*driver\s*"vanilla"\s*$', conf, re.I|re.M))
        self.failIf('SuperSpeed' in conf)
        self.failIf(re.search('^\s*load\s*"glx"\s*$', conf, re.I|re.M))
        # modules which were explicitly disabled should be removed
        self.failIf(re.search('^\s*disable\s*"dri2"\s*$', conf, re.I|re.M))
        self.assert_(re.search('^\s*load\s*"dri"\s*$', conf, re.I|re.M))
Пример #6
0
    def test_xorg_invalid_conf(self):
        '''XorgDriverHandler with invalid xorg.conf'''

        # append some breakage
        f = open(OSLib.inst.xorg_conf_path, 'a')
        print >> f, '''
EndSection

Section "Module"
EndSection
'''
        f.close()

        h = XorgDriverHandler(self.backend, 'vanilla3d', 'mesa-vanilla', 'v3d',
            'vanilla', extra_conf_options={'SuperSpeed': 'true'}, 
            add_modules=['glx'], disable_modules=['dri2'], remove_modules=['dri'],
            name='Vanilla accelerated graphics driver')

        self.assertEqual(h.name(), 'Vanilla accelerated graphics driver')
        self.assertEqual(h.description(),  OSLib.inst.package_description('mesa-vanilla')[1])
        self.assertEqual(h.rationale(), None)
        self.failIf(h.free())
        self.failIf(h.changed())
        self.assert_('xorg.conf is invalid' in h.can_change())
        self.failIf(h.enabled())
        self.assertEqual(h.available(), None)

        self.failIf(h.enable())
        self.failIf(h.changed())
        self.failIf(h.enabled())
        self.failIf(h.disable())
        self.failIf(h.changed())
        self.failIf(h.enabled())
Пример #7
0
    def test_xorg_driver_nobackup(self):
        """XorgDriverHandler with no xorg.conf backup"""

        h = XorgDriverHandler(
            self.backend,
            "vanilla3d",
            "mesa-vanilla",
            "v3d",
            "vanilla",
            extra_conf_options={"SuperSpeed": "true"},
            add_modules=["glx"],
            disable_modules=["dri2"],
            remove_modules=["dri"],
            name="Vanilla accelerated graphics driver",
        )

        self.failIf(h.enable())
        conf = open(OSLib.inst.xorg_conf_path).read()
        self.assert_(re.search('^\s*driver\s*"v3d"\s*$', conf, re.I | re.M))
        self.assert_(re.search('^\s*option\s*"SuperSpeed"\s*"true"\s*$', conf, re.I | re.M))
        self.assert_(re.search('^\s*load\s*"glx"\s*$', conf, re.I | re.M))
        self.assert_(re.search('^\s*disable\s*"dri2"\s*$', conf, re.I | re.M))
        self.failIf(re.search('^\s*load\s*"dri"\s*$', conf, re.I | re.M))

        # unlink backup file
        os.unlink(os.path.join(OSLib.inst.backup_dir, "v3d.oldconf"))

        self.failIf(h.disable())
        conf = open(OSLib.inst.xorg_conf_path).read()
        self.assert_(re.search('^\s*driver\s*"vanilla"\s*$', conf, re.I | re.M))
        self.failIf("SuperSpeed" in conf)
        self.failIf(re.search('^\s*load\s*"glx"\s*$', conf, re.I | re.M))
        # modules which were explicitly disabled should be removed
        self.failIf(re.search('^\s*disable\s*"dri2"\s*$', conf, re.I | re.M))
        self.assert_(re.search('^\s*load\s*"dri"\s*$', conf, re.I | re.M))
Пример #8
0
    def test_xorg_driver_enable_all_one_serverlayout(self):
        '''XorgDriverHandler enable the proprietary driver with one ServerLayout in xorg.conf'''
        
        os.unlink(OSLib.inst.xorg_conf_path)
        
        f = open(OSLib.inst.xorg_conf_path, 'a')
        print >> f, '''
Section "Device"
        Identifier "Graphics card 1"
        Driver "via"
EndSection

Section "Device"
        Identifier "Graphics card 2"
        Driver "via"
EndSection

Section "Screen"
        Identifier "Screen 1"
        Device "Graphics card 1"
EndSection

Section "Screen"
        Identifier "Screen 2"
        Device "Graphics card 2"
EndSection

Section "ServerLayout"
        Identifier "Another Layout"
        Screen "Screen 2"
EndSection
'''
        f.close()
        
        h = XorgDriverHandler(self.backend, 'vanilla3d', 'mesa-vanilla', 'v3d',
            'vanilla', extra_conf_options={'SuperSpeed': 'true'}, 
            add_modules=['glx'], disable_modules=['dri2'], remove_modules=['dri'],
            name='Vanilla accelerated graphics driver')
        
        # only the 2nd device section should have the driver changed
        self.failIf(h.enable())
        conf = open(OSLib.inst.xorg_conf_path).read()
        self.assert_(re.search('^\s*driver\s*"v3d"\s*$', conf, re.I|re.M))
        self.failIf(re.search('^\s*driver\s*"vanilla"\s*$', conf, re.I|re.M))
        self.assert_(re.search('^\s*driver\s*"via"\s*$', conf, re.I|re.M))
        self.assert_(re.search('^\s*option\s*"SuperSpeed"\s*"true"\s*$', conf, re.I|re.M))
        self.assert_(re.search('^\s*load\s*"glx"\s*$', conf, re.I|re.M))
        self.assert_(re.search('^\s*disable\s*"dri2"\s*$', conf, re.I|re.M))
        self.failIf(re.search('^\s*load\s*"dri"\s*$', conf, re.I|re.M))

        # backup file should have been created
        self.assert_(os.path.isfile(os.path.join(OSLib.inst.backup_dir, 'v3d.oldconf')))
    
        # disabling should restore xorg.conf
        self.failIf(h.disable())
        conf = open(OSLib.inst.xorg_conf_path).read()
        self.failIf(re.search('^\s*driver\s*"v3d"\s*$', conf, re.I|re.M))
        self.failIf(re.search('^\s*driver\s*"vanilla"\s*$', conf, re.I|re.M))
        self.assert_(re.search('^\s*driver\s*"via"\s*$', conf, re.I|re.M))
Пример #9
0
    def test_xorg_driver_modules(self):
        '''XorgDriverHandler with default Modules xorg.conf section'''

        # append a Module section
        f = open(OSLib.inst.xorg_conf_path, 'a')
        print >> f, '''
Section "Module"
        Load            "dri"
        SubSection "extmod"
                Option          "omit xfree86-dga"
        EndSubSection
        Load            "foo"
EndSection
'''
        f.close()

        h = XorgDriverHandler(self.backend, 'vanilla3d', 'mesa-vanilla', 'v3d',
            'vanilla', extra_conf_options={'SuperSpeed': 'true'}, 
            add_modules=['glx'], disable_modules=['dri2'], remove_modules=['dri'],
            name='Vanilla accelerated graphics driver')

        self.assertEqual(h.name(), 'Vanilla accelerated graphics driver')
        self.assertEqual(h.description(),  OSLib.inst.package_description('mesa-vanilla')[1])
        self.assertEqual(h.rationale(), None)
        self.failIf(h.free())
        self.failIf(h.changed())
        self.assertEqual(h.can_change(), None)
        self.failIf(h.enabled())
        self.assertEqual(h.available(), None)

        self.failIf(h.enable())
        self.assert_(h.changed())
        self.assert_(h.enabled())
        self.assert_(OSLib.inst.package_installed('mesa-vanilla')) 
        self.failIf(OSLib.inst.module_blacklisted('vanilla3d'))

        conf = open(OSLib.inst.xorg_conf_path).read()
        self.assert_(re.search('^\s*driver\s*"v3d"\s*$', conf, re.I|re.M))
        self.assert_(re.search('^\s*option\s*"SuperSpeed"\s*"true"\s*$', conf, re.I|re.M))
        self.assert_(re.search('^\s*load\s*"glx"\s*$', conf, re.I|re.M))
        self.assert_(re.search('^\s*disable\s*"dri2"\s*$', conf, re.I|re.M))
        self.failIf(re.search('^\s*load\s*"dri"\s*$', conf, re.I|re.M))
        self.assert_(re.search('^\s*load\s*"foo"\s*$', conf, re.I|re.M))

        # unlink backup file
        os.unlink(os.path.join(OSLib.inst.backup_dir, 'v3d.oldconf'))

        # should restore module dri, drop glx and remove dri2
        self.failIf(h.disable())
        self.assert_(h.changed())
        self.failIf(h.enabled())
        self.failIf(OSLib.inst.package_installed('mesa-vanilla')) 
        self.assert_(OSLib.inst.module_blacklisted('vanilla3d'))

        conf = open(OSLib.inst.xorg_conf_path).read()
        self.failIf(re.search('^\s*load\s*"glx"\s*$', conf, re.I|re.M))
        self.failIf(re.search('^\s*disable\s*"dri2"\s*$', conf, re.I|re.M))
        self.assert_(re.search('^\s*load\s*"dri"\s*$', conf, re.I|re.M))
        self.assert_(re.search('^\s*load\s*"foo"\s*$', conf, re.I|re.M))
Пример #10
0
    def enable(self):
        XorgDriverHandler.enable(self)

        # Set the alternative to NVIDIA
        nvidia_alternative = self._alternatives.get_alternative_by_name(
            self.package)
        if not nvidia_alternative:
            logging.error('%s: get_alternative_by_name(%s) returned nothing' %
                          (self.id(), self.package))
            return
        self._alternatives.set_alternative(nvidia_alternative)
        other_nvidia_alternative = self._other_alternatives.get_alternative_by_name(
            self.package)
        self._other_alternatives.set_alternative(other_nvidia_alternative)

        subprocess.call(['update-initramfs', '-u'])
        subprocess.call(['update-initramfs', '-u', '-k', os.uname()[2]])
Пример #11
0
    def test_xorg_driver_nomodules(self):
        '''XorgDriverHandler with no default Modules xorg.conf section'''
        
        h = XorgDriverHandler(self.backend, 'vanilla3d', 'mesa-vanilla', 'v3d',
            'vanilla', extra_conf_options={'SuperSpeed': 'true'}, 
            add_modules=['glx'], disable_modules=['dri2'], remove_modules=['dri'],
            name='Vanilla accelerated graphics driver')

        orig_xorg_conf = open(OSLib.inst.xorg_conf_path).read()

        self.assertEqual(h.name(), 'Vanilla accelerated graphics driver')
        self.assertEqual(h.id(), 'xorg:vanilla3d')
        self.assertEqual(h.description(),  OSLib.inst.package_description('mesa-vanilla')[1])
        self.assertEqual(h.rationale(), None)
        self.failIf(h.free())
        self.failIf(h.changed())
        self.assertEqual(h.can_change(), None)
        self.failIf(h.enabled())
        self.failIf(h.used())
        self.assertEqual(h.available(), None)
        self.failIf(h.enables_composite())

        self.failIf(h.enable())
        self.assert_(h.changed())
        self.failIf(h.used()) # X.org needs to be restarted for this to work
        self.assert_(h.enabled())
        self.assert_(OSLib.inst.package_installed('mesa-vanilla')) 
        self.failIf(OSLib.inst.module_blacklisted('vanilla3d'))

        conf = open(OSLib.inst.xorg_conf_path).read()
        self.assert_(re.search('^\s*driver\s*"v3d"\s*$', conf, re.I|re.M))
        self.assert_(re.search('^\s*option\s*"SuperSpeed"\s*"true"\s*$', conf, re.I|re.M))
        self.assert_(re.search('^\s*load\s*"glx"\s*$', conf, re.I|re.M))
        self.assert_(re.search('^\s*disable\s*"dri2"\s*$', conf, re.I|re.M))
        self.failIf(re.search('^\s*load\s*"dri"\s*$', conf, re.I|re.M))

        # driver should be used when loading the module (done in enable()) and
        # starting jockey again
        h2 = XorgDriverHandler(self.backend, 'vanilla3d', 'mesa-vanilla', 'v3d',
            'vanilla', extra_conf_options={'SuperSpeed': 'true'}, 
            add_modules=['glx'], disable_modules=['dri2'], remove_modules=['dri'],
            name='Vanilla accelerated graphics driver')
        self.assert_(h2.enabled())
        self.assert_(h2.used())

        self.failIf(h.disable())
        self.assert_(h.changed())
        self.failIf(h.enabled())
        self.failIf(h.used()) # wasn't used after enabling
        self.failIf(OSLib.inst.package_installed('mesa-vanilla')) 
        self.assert_(OSLib.inst.module_blacklisted('vanilla3d'))

        # restores original backup
        self.assertEqual(open(OSLib.inst.xorg_conf_path).read(), orig_xorg_conf)

        # vendor
        h.driver_vendor = 'Foo Bar'
        self.assertEqual(h.id(), 'xorg:vanilla3d:Foo_Bar')
Пример #12
0
    def test_xorg_driver_enable_all_no_serverlayout(self):
        """XorgDriverHandler enable the proprietary driver without ServerLayout in xorg.conf"""

        os.unlink(OSLib.inst.xorg_conf_path)

        f = open(OSLib.inst.xorg_conf_path, "a")
        print >> f, """
Section "Device"
        Identifier "Graphics card 1"
        Driver "via"
EndSection

Section "Device"
        Identifier "Graphics card 2"
        Driver "via"
EndSection
"""
        f.close()

        h = XorgDriverHandler(
            self.backend,
            "vanilla3d",
            "mesa-vanilla",
            "v3d",
            "vanilla",
            extra_conf_options={"SuperSpeed": "true"},
            add_modules=["glx"],
            disable_modules=["dri2"],
            remove_modules=["dri"],
            name="Vanilla accelerated graphics driver",
        )

        # all drivers will be changed
        self.failIf(h.enable())
        conf = open(OSLib.inst.xorg_conf_path).read()
        self.assert_(re.search('^\s*driver\s*"v3d"\s*$', conf, re.I | re.M))
        self.failIf(re.search('^\s*driver\s*"vanilla"\s*$', conf, re.I | re.M))
        self.failIf(re.search('^\s*driver\s*"via"\s*$', conf, re.I | re.M))
        self.assert_(re.search('^\s*option\s*"SuperSpeed"\s*"true"\s*$', conf, re.I | re.M))
        self.assert_(re.search('^\s*load\s*"glx"\s*$', conf, re.I | re.M))
        self.assert_(re.search('^\s*disable\s*"dri2"\s*$', conf, re.I | re.M))
        self.failIf(re.search('^\s*load\s*"dri"\s*$', conf, re.I | re.M))

        # backup file should have been created
        self.assert_(os.path.isfile(os.path.join(OSLib.inst.backup_dir, "v3d.oldconf")))

        # disabling should restore xorg.conf
        self.failIf(h.disable())
        conf = open(OSLib.inst.xorg_conf_path).read()
        self.failIf(re.search('^\s*driver\s*"v3d"\s*$', conf, re.I | re.M))
        self.failIf(re.search('^\s*driver\s*"vanilla"\s*$', conf, re.I | re.M))
        self.assert_(re.search('^\s*driver\s*"via"\s*$', conf, re.I | re.M))
Пример #13
0
    def test_xorg_driver_no_xorgconf(self):
        """XorgDriverHandler without a default xorg.conf"""

        os.unlink(OSLib.inst.xorg_conf_path)

        h = XorgDriverHandler(
            self.backend,
            "vanilla3d",
            "mesa-vanilla",
            "v3d",
            "vanilla",
            extra_conf_options={"SuperSpeed": "true"},
            add_modules=["glx"],
            disable_modules=["dri2"],
            remove_modules=["dri"],
            name="Vanilla accelerated graphics driver",
        )

        self.failIf(h.free())
        self.failIf(h.changed())
        self.assertEqual(h.can_change(), None)  # should create an xorg.conf from scratch
        self.failIf(h.enabled())
        self.assertEqual(h.available(), None)

        self.failIf(h.enable())
        self.assert_(h.changed())
        self.assert_(h.enabled())
        self.assert_(OSLib.inst.package_installed("mesa-vanilla"))
        self.failIf(OSLib.inst.module_blacklisted("vanilla3d"))

        conf = open(OSLib.inst.xorg_conf_path).read()
        self.assert_(re.search('^\s*driver\s*"v3d"\s*$', conf, re.I | re.M))
        self.assert_(re.search('^\s*option\s*"SuperSpeed"\s*"true"\s*$', conf, re.I | re.M))
        self.assert_(re.search('^\s*load\s*"glx"\s*$', conf, re.I | re.M))
        self.assert_(re.search('^\s*disable\s*"dri2"\s*$', conf, re.I | re.M))
        self.failIf(re.search('^\s*load\s*"dri"\s*$', conf, re.I | re.M))

        # should remove xorg.conf again
        self.failIf(h.disable())
        self.assert_(h.changed())
        self.failIf(h.enabled())
        self.failIf(OSLib.inst.package_installed("mesa-vanilla"))
        self.assert_(OSLib.inst.module_blacklisted("vanilla3d"))
        self.failIf(os.path.exists(OSLib.inst.xorg_conf_path))
Пример #14
0
    def test_xorg_driver_existing_proprietary(self):
        '''XorgDriverHandler backup with the proprietary driver already in xorg.conf'''
        
        f = open(OSLib.inst.xorg_conf_path, 'a')
        print >> f, '''
Section "Device"
        Identifier "Graphics card 1"
        Driver "via"
EndSection

Section "Device"
        Identifier "Graphics card 2"
        Driver "v3d"
EndSection
'''
        f.close()
        
        h = XorgDriverHandler(self.backend, 'vanilla3d', 'mesa-vanilla', 'v3d',
            'vanilla', extra_conf_options={'SuperSpeed': 'true'}, 
            add_modules=['glx'], disable_modules=['dri2'], remove_modules=['dri'],
            name='Vanilla accelerated graphics driver')

        self.failIf(h.enable())
        conf = open(OSLib.inst.xorg_conf_path).read()
        self.assert_(re.search('^\s*driver\s*"v3d"\s*$', conf, re.I|re.M))
        self.failIf(re.search('^\s*driver\s*"vanilla"\s*$', conf, re.I|re.M))
        self.assert_(re.search('^\s*driver\s*"via"\s*$', conf, re.I|re.M))
        self.assert_(re.search('^\s*option\s*"SuperSpeed"\s*"true"\s*$', conf, re.I|re.M))
        self.assert_(re.search('^\s*load\s*"glx"\s*$', conf, re.I|re.M))
        self.assert_(re.search('^\s*disable\s*"dri2"\s*$', conf, re.I|re.M))
        self.failIf(re.search('^\s*load\s*"dri"\s*$', conf, re.I|re.M))

        # no backup file should have been created
        self.failIf(os.path.isfile(os.path.join(OSLib.inst.backup_dir, 'v3d.oldconf')))
    
        # disabling should restore xorg.conf
        self.failIf(h.disable())
        conf = open(OSLib.inst.xorg_conf_path).read()
        self.assert_(re.search('^\s*driver\s*"v3d"\s*$', conf, re.I|re.M))
        self.assert_(re.search('^\s*driver\s*"vanilla"\s*$', conf, re.I|re.M))
        self.assert_(re.search('^\s*driver\s*"via"\s*$', conf, re.I|re.M))
Пример #15
0
    def test_xorg_invalid_conf(self):
        """XorgDriverHandler with invalid xorg.conf"""

        # append some breakage
        f = open(OSLib.inst.xorg_conf_path, "a")
        print >> f, """
EndSection

Section "Module"
EndSection
"""
        f.close()

        h = XorgDriverHandler(
            self.backend,
            "vanilla3d",
            "mesa-vanilla",
            "v3d",
            "vanilla",
            extra_conf_options={"SuperSpeed": "true"},
            add_modules=["glx"],
            disable_modules=["dri2"],
            remove_modules=["dri"],
            name="Vanilla accelerated graphics driver",
        )

        self.assertEqual(h.name(), "Vanilla accelerated graphics driver")
        self.assertEqual(h.description(), OSLib.inst.package_description("mesa-vanilla")[1])
        self.assertEqual(h.rationale(), None)
        self.failIf(h.free())
        self.failIf(h.changed())
        self.assert_("xorg.conf is invalid" in h.can_change())
        self.failIf(h.enabled())
        self.assertEqual(h.available(), None)

        self.failIf(h.enable())
        self.failIf(h.changed())
        self.failIf(h.enabled())
        self.failIf(h.disable())
        self.failIf(h.changed())
        self.failIf(h.enabled())
Пример #16
0
    def test_xorg_driver_no_xorgconf_nodriver(self):
        '''XorgDriverHandler without a default xorg.conf and no explicit "Driver"'''

        os.unlink(OSLib.inst.xorg_conf_path)

        h = XorgDriverHandler(self.backend, 'vanilla3d', 'mesa-vanilla', None,
            None, extra_conf_options={'SuperSpeed': 'true'}, 
            add_modules=['glx'], disable_modules=['dri2'],
            name='Vanilla accelerated graphics driver')

        self.failIf(h.free())
        self.failIf(h.changed())
        self.assertEqual(h.can_change(), None) # should create an xorg.conf from scratch
        self.failIf(h.enabled())
        self.assertEqual(h.available(), None)

        self.failIf(h.enable())
        self.assert_(h.changed())
        self.assert_(h.enabled())
        self.assert_(OSLib.inst.package_installed('mesa-vanilla')) 
        self.failIf(OSLib.inst.module_blacklisted('vanilla3d'))

        conf = open(OSLib.inst.xorg_conf_path).read()
        self.failIf(re.search('^\s*driver', conf, re.I|re.M))
        self.assert_(re.search('^\s*option\s*"SuperSpeed"\s*"true"\s*$', conf, re.I|re.M))
        self.assert_(re.search('^\s*load\s*"glx"\s*$', conf, re.I|re.M))
        self.assert_(re.search('^\s*disable\s*"dri2"\s*$', conf, re.I|re.M))
        self.failIf(re.search('^\s*load\s*"dri"\s*$', conf, re.I|re.M))

        # should remove xorg.conf again
        self.failIf(h.disable())
        self.assert_(h.changed())
        self.failIf(h.enabled())
        self.failIf(OSLib.inst.package_installed('mesa-vanilla')) 
        self.assert_(OSLib.inst.module_blacklisted('vanilla3d'))
        self.failIf(os.path.exists(OSLib.inst.xorg_conf_path))
Пример #17
0
    def test_xorg_driver_enable_all_more_serverlayouts(self):
        """XorgDriverHandler enable the proprietary driver with more ServerLayouts in xorg.conf"""

        os.unlink(OSLib.inst.xorg_conf_path)

        f = open(OSLib.inst.xorg_conf_path, "a")
        print >> f, """
Section "Device"
        Identifier "Graphics card 1"
        Driver "via"
EndSection

Section "Device"
        Identifier "Graphics card 2"
        Driver "via"
EndSection

Section "Screen"
        Identifier "Screen 1"
        Device "Graphics card 1"
EndSection

Section "Screen"
        Identifier "Screen 2"
        Device "Graphics card 2"
EndSection

Section "ServerLayout"
        Identifier "Default Layout"
        Option "Whatever"
        Screen "Screen 1" 0 0
        Screen "Screen 2" RightOf "Screen 1"
EndSection

Section "ServerLayout"
        Identifier "Another Layout"
        Option "Whatever"
        Screen "Screen 2" 0 0
EndSection

Section "ServerFlags"
        Option "DefaultServerLayout" "Another Layout"
EndSection
"""
        f.close()

        h = XorgDriverHandler(
            self.backend,
            "vanilla3d",
            "mesa-vanilla",
            "v3d",
            "vanilla",
            extra_conf_options={"SuperSpeed": "true"},
            add_modules=["glx"],
            disable_modules=["dri2"],
            remove_modules=["dri"],
            name="Vanilla accelerated graphics driver",
        )

        # the 2nd serverlayout is used, therefore only the 2nd device section must be
        # changed
        self.failIf(h.enable())
        conf = open(OSLib.inst.xorg_conf_path).read()
        self.assert_(re.search('^\s*driver\s*"v3d"\s*$', conf, re.I | re.M))
        self.failIf(re.search('^\s*driver\s*"vanilla"\s*$', conf, re.I | re.M))
        self.assert_(re.search('^\s*driver\s*"via"\s*$', conf, re.I | re.M))
        self.assert_(re.search('^\s*option\s*"SuperSpeed"\s*"true"\s*$', conf, re.I | re.M))
        self.assert_(re.search('^\s*load\s*"glx"\s*$', conf, re.I | re.M))
        self.assert_(re.search('^\s*disable\s*"dri2"\s*$', conf, re.I | re.M))
        self.failIf(re.search('^\s*load\s*"dri"\s*$', conf, re.I | re.M))

        # backup file should have been created
        self.assert_(os.path.isfile(os.path.join(OSLib.inst.backup_dir, "v3d.oldconf")))

        # disabling should restore xorg.conf
        self.failIf(h.disable())
        conf = open(OSLib.inst.xorg_conf_path).read()
        self.failIf(re.search('^\s*driver\s*"v3d"\s*$', conf, re.I | re.M))
        self.failIf(re.search('^\s*driver\s*"vanilla"\s*$', conf, re.I | re.M))
        self.assert_(re.search('^\s*driver\s*"via"\s*$', conf, re.I | re.M))
Пример #18
0
    def test_xorg_driver_modules(self):
        """XorgDriverHandler with default Modules xorg.conf section"""

        # append a Module section
        f = open(OSLib.inst.xorg_conf_path, "a")
        print >> f, """
Section "Module"
        Load            "dri"
        SubSection "extmod"
                Option          "omit xfree86-dga"
        EndSubSection
        Load            "foo"
EndSection
"""
        f.close()

        h = XorgDriverHandler(
            self.backend,
            "vanilla3d",
            "mesa-vanilla",
            "v3d",
            "vanilla",
            extra_conf_options={"SuperSpeed": "true"},
            add_modules=["glx"],
            disable_modules=["dri2"],
            remove_modules=["dri"],
            name="Vanilla accelerated graphics driver",
        )

        self.assertEqual(h.name(), "Vanilla accelerated graphics driver")
        self.assertEqual(h.description(), OSLib.inst.package_description("mesa-vanilla")[1])
        self.assertEqual(h.rationale(), None)
        self.failIf(h.free())
        self.failIf(h.changed())
        self.assertEqual(h.can_change(), None)
        self.failIf(h.enabled())
        self.assertEqual(h.available(), None)

        self.failIf(h.enable())
        self.assert_(h.changed())
        self.assert_(h.enabled())
        self.assert_(OSLib.inst.package_installed("mesa-vanilla"))
        self.failIf(OSLib.inst.module_blacklisted("vanilla3d"))

        conf = open(OSLib.inst.xorg_conf_path).read()
        self.assert_(re.search('^\s*driver\s*"v3d"\s*$', conf, re.I | re.M))
        self.assert_(re.search('^\s*option\s*"SuperSpeed"\s*"true"\s*$', conf, re.I | re.M))
        self.assert_(re.search('^\s*load\s*"glx"\s*$', conf, re.I | re.M))
        self.assert_(re.search('^\s*disable\s*"dri2"\s*$', conf, re.I | re.M))
        self.failIf(re.search('^\s*load\s*"dri"\s*$', conf, re.I | re.M))
        self.assert_(re.search('^\s*load\s*"foo"\s*$', conf, re.I | re.M))

        # unlink backup file
        os.unlink(os.path.join(OSLib.inst.backup_dir, "v3d.oldconf"))

        # should restore module dri, drop glx and remove dri2
        self.failIf(h.disable())
        self.assert_(h.changed())
        self.failIf(h.enabled())
        self.failIf(OSLib.inst.package_installed("mesa-vanilla"))
        self.assert_(OSLib.inst.module_blacklisted("vanilla3d"))

        conf = open(OSLib.inst.xorg_conf_path).read()
        self.failIf(re.search('^\s*load\s*"glx"\s*$', conf, re.I | re.M))
        self.failIf(re.search('^\s*disable\s*"dri2"\s*$', conf, re.I | re.M))
        self.assert_(re.search('^\s*load\s*"dri"\s*$', conf, re.I | re.M))
        self.assert_(re.search('^\s*load\s*"foo"\s*$', conf, re.I | re.M))