Merge pull request #193 from devimc/virtcontainers/fixUnitTests

virtcontainers: fix unit tests
This commit is contained in:
Sebastien Boeuf 2018-04-09 15:36:23 -07:00 committed by GitHub
commit 5932803088
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 32 additions and 14 deletions

View File

@ -1726,7 +1726,7 @@ func TestEnterContainerFailingContNotStarted(t *testing.T) {
cmd := newBasicTestCmd()
_, c, _, err = EnterContainer(p.ID(), contID, cmd)
if c != nil || err == nil {
if c == nil || err != nil {
t.Fatal()
}
}

View File

@ -432,6 +432,19 @@ func (c *Container) rollbackFailingContainerCreation() {
}
}
func (c *Container) checkBlockDeviceSupport() bool {
if !c.pod.config.HypervisorConfig.DisableBlockDeviceUse {
agentCaps := c.pod.agent.capabilities()
hypervisorCaps := c.pod.hypervisor.capabilities()
if agentCaps.isBlockDeviceSupported() && hypervisorCaps.isBlockDeviceHotplugSupported() {
return true
}
}
return false
}
// createContainer creates and start a container inside a Pod. It has to be
// called only when a new container, not known by the pod, has to be created.
func createContainer(pod *Pod, contConfig ContainerConfig) (c *Container, err error) {
@ -456,8 +469,10 @@ func createContainer(pod *Pod, contConfig ContainerConfig) (c *Container, err er
}
}()
if err = c.hotplugDrive(); err != nil {
return
if c.checkBlockDeviceSupport() {
if err = c.hotplugDrive(); err != nil {
return
}
}
// Attach devices
@ -683,15 +698,6 @@ func (c *Container) processList(options ProcessListOptions) (ProcessList, error)
}
func (c *Container) hotplugDrive() error {
agentCaps := c.pod.agent.capabilities()
hypervisorCaps := c.pod.hypervisor.capabilities()
if c.pod.config.HypervisorConfig.DisableBlockDeviceUse ||
!agentCaps.isBlockDeviceSupported() ||
!hypervisorCaps.isBlockDeviceHotplugSupported() {
return nil
}
dev, err := getDeviceForPath(c.rootFs)
if err == errMountPointNotFound {

View File

@ -210,6 +210,12 @@ func TestContainerAddDriveDir(t *testing.T) {
id: testPodID,
storage: fs,
hypervisor: &mockHypervisor{},
agent: &noopAgent{},
config: &PodConfig{
HypervisorConfig: HypervisorConfig{
DisableBlockDeviceUse: false,
},
},
}
contID := "100"
@ -258,7 +264,6 @@ func TestContainerAddDriveDir(t *testing.T) {
if container.state.Fstype == "" || !container.state.HotpluggedDrive {
t.Fatal()
}
}
func TestCheckPodRunningEmptyCmdFailure(t *testing.T) {
@ -307,7 +312,10 @@ func TestContainerAddResources(t *testing.T) {
CPUQuota: 5000,
CPUPeriod: 1000,
}
c.pod = &Pod{hypervisor: &mockHypervisor{}}
c.pod = &Pod{
hypervisor: &mockHypervisor{},
agent: &noopAgent{},
}
err = c.addResources()
assert.Nil(err)
}

View File

@ -30,6 +30,10 @@ func (c *Container) Pod() vc.VCPod {
// Process implements the VCContainer function of the same name.
func (c *Container) Process() vc.Process {
// always return a mockprocess with a non-zero Pid
if c.MockProcess.Pid == 0 {
c.MockProcess.Pid = 1000
}
return c.MockProcess
}