Skip to content
This repository has been archived by the owner on May 12, 2021. It is now read-only.

Commit

Permalink
Merge pull request #2853 from cmaf/unittest-virtcontainers-sandbox
Browse files Browse the repository at this point in the history
virtcontainers: Move unit tests for types/sandbox.go
  • Loading branch information
jodh-intel authored Jul 28, 2020
2 parents dae0786 + d889e9c commit 032d537
Show file tree
Hide file tree
Showing 2 changed files with 238 additions and 209 deletions.
209 changes: 0 additions & 209 deletions virtcontainers/sandbox_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -169,215 +169,6 @@ func TestCreateSandboxEmptyID(t *testing.T) {
defer cleanUp()
}

func testSandboxStateTransition(t *testing.T, state types.StateString, newState types.StateString) error {
hConfig := newHypervisorConfig(nil, nil)

p, err := testCreateSandbox(t, testSandboxID, MockHypervisor, hConfig, NoopAgentType, NetworkConfig{}, nil, nil)
assert.NoError(t, err)
defer cleanUp()

p.state = types.SandboxState{
State: state,
}

return p.state.ValidTransition(state, newState)
}

func TestSandboxStateReadyRunning(t *testing.T) {
err := testSandboxStateTransition(t, types.StateReady, types.StateRunning)
assert.NoError(t, err)
}

func TestSandboxStateRunningPaused(t *testing.T) {
err := testSandboxStateTransition(t, types.StateRunning, types.StatePaused)
assert.NoError(t, err)
}

func TestSandboxStatePausedRunning(t *testing.T) {
err := testSandboxStateTransition(t, types.StatePaused, types.StateRunning)
assert.NoError(t, err)
}

func TestSandboxStatePausedStopped(t *testing.T) {
err := testSandboxStateTransition(t, types.StatePaused, types.StateStopped)
assert.NoError(t, err)
}

func TestSandboxStateRunningStopped(t *testing.T) {
err := testSandboxStateTransition(t, types.StateRunning, types.StateStopped)
assert.NoError(t, err)
}

func TestSandboxStateReadyPaused(t *testing.T) {
err := testSandboxStateTransition(t, types.StateReady, types.StateStopped)
assert.NoError(t, err)
}

func TestSandboxStatePausedReady(t *testing.T) {
err := testSandboxStateTransition(t, types.StateStopped, types.StateReady)
assert.Error(t, err)
}

func testStateValid(t *testing.T, stateStr types.StateString, expected bool) {
state := &types.SandboxState{
State: stateStr,
}

ok := state.Valid()
assert.Equal(t, ok, expected)
}

func TestStateValidSuccessful(t *testing.T) {
testStateValid(t, types.StateReady, true)
testStateValid(t, types.StateRunning, true)
testStateValid(t, types.StatePaused, true)
testStateValid(t, types.StateStopped, true)
}

func TestStateValidFailing(t *testing.T) {
testStateValid(t, "", false)
}

func TestValidTransitionFailingOldStateMismatch(t *testing.T) {
state := &types.SandboxState{
State: types.StateReady,
}

err := state.ValidTransition(types.StateRunning, types.StateStopped)
assert.Error(t, err)
}

func TestVolumesSetSuccessful(t *testing.T) {
volumes := &types.Volumes{}

volStr := "mountTag1:hostPath1 mountTag2:hostPath2"

expected := types.Volumes{
{
MountTag: "mountTag1",
HostPath: "hostPath1",
},
{
MountTag: "mountTag2",
HostPath: "hostPath2",
},
}

err := volumes.Set(volStr)
assert.NoError(t, err)
assert.Exactly(t, *volumes, expected)
}

func TestVolumesSetFailingTooFewArguments(t *testing.T) {
volumes := &types.Volumes{}

volStr := "mountTag1 mountTag2"

err := volumes.Set(volStr)
assert.Error(t, err)
}

func TestVolumesSetFailingTooManyArguments(t *testing.T) {
volumes := &types.Volumes{}

volStr := "mountTag1:hostPath1:Foo1 mountTag2:hostPath2:Foo2"

err := volumes.Set(volStr)
assert.Error(t, err)
}

func TestVolumesSetFailingVoidArguments(t *testing.T) {
volumes := &types.Volumes{}

volStr := ": : :"

err := volumes.Set(volStr)
assert.Error(t, err)
}

func TestVolumesStringSuccessful(t *testing.T) {
volumes := &types.Volumes{
{
MountTag: "mountTag1",
HostPath: "hostPath1",
},
{
MountTag: "mountTag2",
HostPath: "hostPath2",
},
}

expected := "mountTag1:hostPath1 mountTag2:hostPath2"

result := volumes.String()
assert.Equal(t, result, expected)
}

func TestSocketsSetSuccessful(t *testing.T) {
sockets := &types.Sockets{}

sockStr := "devID1:id1:hostPath1:Name1 devID2:id2:hostPath2:Name2"

expected := types.Sockets{
{
DeviceID: "devID1",
ID: "id1",
HostPath: "hostPath1",
Name: "Name1",
},
{
DeviceID: "devID2",
ID: "id2",
HostPath: "hostPath2",
Name: "Name2",
},
}

err := sockets.Set(sockStr)
assert.NoError(t, err)
assert.Exactly(t, *sockets, expected)
}

func TestSocketsSetFailingWrongArgsAmount(t *testing.T) {
sockets := &types.Sockets{}

sockStr := "devID1:id1:hostPath1"

err := sockets.Set(sockStr)
assert.Error(t, err)
}

func TestSocketsSetFailingVoidArguments(t *testing.T) {
sockets := &types.Sockets{}

sockStr := ":::"

err := sockets.Set(sockStr)
assert.Error(t, err)
}

func TestSocketsStringSuccessful(t *testing.T) {
sockets := &types.Sockets{
{
DeviceID: "devID1",
ID: "id1",
HostPath: "hostPath1",
Name: "Name1",
},
{
DeviceID: "devID2",
ID: "id2",
HostPath: "hostPath2",
Name: "Name2",
},
}

expected := "devID1:id1:hostPath1:Name1 devID2:id2:hostPath2:Name2"

result := sockets.String()
assert.Equal(t, result, expected)
}

func TestSandboxListSuccessful(t *testing.T) {
sandbox := &Sandbox{}

Expand Down
Loading

0 comments on commit 032d537

Please sign in to comment.