VirtualBox

Ignore:
Timestamp:
May 24, 2018 9:22:38 AM (7 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
122768
Message:

ValidationKit: Add support for basic nested hardware-virtualization smoke tests.

Location:
trunk/src/VBox/ValidationKit/testdriver
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/ValidationKit/testdriver/vbox.py

    r71572 r72315  
    19761976            reporter.log("  PAE:                %s" % (oVM.getCpuProperty(vboxcon.CpuPropertyType_PAE)));
    19771977            reporter.log("  Synthetic CPU:      %s" % (oVM.getCpuProperty(vboxcon.CpuPropertyType_Synthetic)));
     1978        if self.fpApiVer >= 5.3 and hasattr(vboxcon, 'CPUPropertyType_HWVirt'):
     1979            reporter.log("  Nested VT-x/AMD-V:  %s" % (oVM.getCPUProperty(vboxcon.CPUPropertyType_HWVirt)));
    19781980        reporter.log("  ACPI:               %s" % (oVM.BIOSSettings.ACPIEnabled));
    19791981        reporter.log("  IO-APIC:            %s" % (oVM.BIOSSettings.IOAPICEnabled));
     
    22082210                     sKind = "Other",
    22092211                     fIoApic = None,
     2212                     fNstHwVirt = None,
    22102213                     fPae = None,
    22112214                     fFastBootLogo = True,
     
    22802283            if fRc and fIoApic is not None:
    22812284                fRc = oSession.enableIoApic(fIoApic);
     2285            if fRc and fNstHwVirt is not None:
     2286                fRc = oSession.enableNestedHwVirt(fNstHwVirt);
    22822287            if fRc and fPae is not None:
    22832288                fRc = oSession.enablePae(fPae);
  • trunk/src/VBox/ValidationKit/testdriver/vboxtestvms.py

    r71959 r72315  
    207207                 asVirtModesSup = None,                     # type: List[str]
    208208                 fIoApic = None,                            # type: bool
     209                 fNstHwVirt = False,                        # type: bool
    209210                 fPae = None,                               # type: bool
    210211                 sNic0AttachType = None,                    # type: str
     
    233234        self.sDvdControllerType      = sDvdControllerType;
    234235        self.fIoApic                 = fIoApic;
     236        self.fNstHwVirt              = fNstHwVirt;
    235237        self.fPae                    = fPae;
    236238        self.sNic0AttachType         = sNic0AttachType;
     
    408410                                     sKind              = self.sKind,
    409411                                     fIoApic            = self.fIoApic,
     412                                     fNstHwVirt         = self.fNstHwVirt,
    410413                                     fPae               = self.fPae,
    411414                                     eNic0AttachType    = eNic0AttachType,
     
    914917        fRc = True;
    915918        for oTestVm in self.aoTestVms:
     919            if oTestVm.fNstHwVirt and not oTestDrv.isHostCpuAmd():
     920                reporter.log2('Ignoring VM %s (Nested hardware-virtualization only supported on AMD CPUs).' % (oTestVm.sVmName,));
     921                continue;
    916922            if oTestVm.fSkip and self.fIgnoreSkippedVm:
    917923                reporter.log2('Ignoring VM %s (fSkip = True).' % (oTestVm.sVmName,));
     
    11131119        #       sKind = 'Windows10_64', acCpusSup = range(1, 33), fIoApic = True, sFirmwareType = 'efi', sChipsetType = 'ich9'),
    11141120
     1121        # Nested hardware-virtualization
     1122        #TestVm('tst-nsthwvirt-ubuntu-64',    kfGrpStdSmoke,       sHd = '4.2/nat/nsthwvirt-ubuntu64/t-nsthwvirt-ubuntu64.vdi',
     1123        #       sKind = 'Ubuntu_64', acCpusSup = range(1, 2), asVirtModesSup = ['hwvirt-np',], fIoApic = True, fNstHwVirt = True,
     1124        #       sNic0AttachType = 'nat'),
     1125
    11151126        # DOS and Old Windows.
    11161127        AncientTestVm('tst-dos20',              sKind = 'DOS',
  • trunk/src/VBox/ValidationKit/testdriver/vboxwrappers.py

    r72298 r72315  
    992992        else:
    993993            reporter.log('set CPUPropertyType_LongMode=%s for "%s"' % (fEnable, self.sName));
     994        self.oTstDrv.processPendingEvents();
     995        return fRc;
     996
     997    def enableNestedHwVirt(self, fEnable):
     998        """
     999        Enables or disables Nested Hardware-Virtualization.
     1000        Returns True on success and False on failure.  Error information is logged.
     1001        """
     1002        # Supported.
     1003        if self.fpApiVer < 5.3  or  not hasattr(vboxcon, 'CPUPropertyType_HWVirt'):
     1004            return True;
     1005
     1006        # Enable/disable it.
     1007        fRc = True;
     1008        try:
     1009            self.o.machine.setCPUProperty(vboxcon.CPUPropertyType_HWVirt, fEnable);
     1010        except:
     1011            reporter.errorXcpt('failed to set CPUPropertyType_HWVirt=%s for "%s"' % (fEnable, self.sName));
     1012            fRc = False;
     1013        else:
     1014            reporter.log('set CPUPropertyType_HWVirt=%s for "%s"' % (fEnable, self.sName));
    9941015        self.oTstDrv.processPendingEvents();
    9951016        return fRc;
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette