gitee.com/leisunstar/runtime@v0.0.0-20200521203717-5cef3e7b53f9/virtcontainers/noop_agent_test.go (about)

     1  //
     2  // Copyright (c) 2016 Intel Corporation
     3  //
     4  // SPDX-License-Identifier: Apache-2.0
     5  //
     6  
     7  package virtcontainers
     8  
     9  import (
    10  	"context"
    11  	"testing"
    12  
    13  	"github.com/kata-containers/runtime/virtcontainers/types"
    14  	"github.com/stretchr/testify/assert"
    15  )
    16  
    17  func testCreateNoopContainer() (*Sandbox, *Container, error) {
    18  	defer cleanUp()
    19  
    20  	contID := "100"
    21  	config := newTestSandboxConfigNoop()
    22  
    23  	ctx := context.Background()
    24  	p, err := CreateSandbox(ctx, config, nil)
    25  	if err != nil {
    26  		return nil, nil, err
    27  	}
    28  
    29  	contConfig := newTestContainerConfigNoop(contID)
    30  
    31  	p, c, err := CreateContainer(ctx, p.ID(), contConfig)
    32  	if err != nil {
    33  		return nil, nil, err
    34  	}
    35  
    36  	return p.(*Sandbox), c.(*Container), nil
    37  }
    38  
    39  func TestNoopAgentInit(t *testing.T) {
    40  	n := &noopAgent{}
    41  	sandbox := &Sandbox{}
    42  	assert := assert.New(t)
    43  
    44  	disableVMShutdown, err := n.init(context.Background(), sandbox, nil)
    45  	assert.NoError(err)
    46  	assert.False(disableVMShutdown)
    47  }
    48  
    49  func TestNoopAgentExec(t *testing.T) {
    50  	n := &noopAgent{}
    51  	cmd := types.Cmd{}
    52  	assert := assert.New(t)
    53  
    54  	sandbox, container, err := testCreateNoopContainer()
    55  	assert.NoError(err)
    56  	defer cleanUp()
    57  
    58  	_, err = n.exec(sandbox, *container, cmd)
    59  	assert.NoError(err)
    60  }
    61  
    62  func TestNoopAgentStartSandbox(t *testing.T) {
    63  	n := &noopAgent{}
    64  	sandbox := &Sandbox{}
    65  	assert := assert.New(t)
    66  
    67  	err := n.startSandbox(sandbox)
    68  	assert.NoError(err)
    69  }
    70  
    71  func TestNoopAgentStopSandbox(t *testing.T) {
    72  	n := &noopAgent{}
    73  	sandbox := &Sandbox{}
    74  	assert := assert.New(t)
    75  
    76  	err := n.stopSandbox(sandbox)
    77  	assert.NoError(err)
    78  }
    79  
    80  func TestNoopAgentCreateContainer(t *testing.T) {
    81  	n := &noopAgent{}
    82  	assert := assert.New(t)
    83  	sandbox, container, err := testCreateNoopContainer()
    84  	assert.NoError(err)
    85  	defer cleanUp()
    86  
    87  	err = n.startSandbox(sandbox)
    88  	assert.NoError(err)
    89  
    90  	_, err = n.createContainer(sandbox, container)
    91  	assert.NoError(err)
    92  }
    93  
    94  func TestNoopAgentStartContainer(t *testing.T) {
    95  	n := &noopAgent{}
    96  	assert := assert.New(t)
    97  
    98  	sandbox, container, err := testCreateNoopContainer()
    99  	assert.NoError(err)
   100  	defer cleanUp()
   101  
   102  	err = n.startContainer(sandbox, container)
   103  	assert.NoError(err)
   104  }
   105  
   106  func TestNoopAgentStopContainer(t *testing.T) {
   107  	n := &noopAgent{}
   108  	assert := assert.New(t)
   109  	sandbox, container, err := testCreateNoopContainer()
   110  	assert.NoError(err)
   111  	defer cleanUp()
   112  
   113  	err = n.stopContainer(sandbox, *container)
   114  	assert.NoError(err)
   115  }
   116  
   117  func TestNoopAgentStatsContainer(t *testing.T) {
   118  	n := &noopAgent{}
   119  	assert := assert.New(t)
   120  	sandbox, container, err := testCreateNoopContainer()
   121  	assert.NoError(err)
   122  
   123  	defer cleanUp()
   124  	_, err = n.statsContainer(sandbox, *container)
   125  	assert.NoError(err)
   126  }
   127  
   128  func TestNoopAgentPauseContainer(t *testing.T) {
   129  	n := &noopAgent{}
   130  	assert := assert.New(t)
   131  	sandbox, container, err := testCreateNoopContainer()
   132  	assert.NoError(err)
   133  
   134  	defer cleanUp()
   135  	err = n.pauseContainer(sandbox, *container)
   136  	assert.NoError(err)
   137  }
   138  
   139  func TestNoopAgentResumeContainer(t *testing.T) {
   140  	n := &noopAgent{}
   141  	assert := assert.New(t)
   142  	sandbox, container, err := testCreateNoopContainer()
   143  	assert.NoError(err)
   144  	defer cleanUp()
   145  	err = n.resumeContainer(sandbox, *container)
   146  	assert.NoError(err)
   147  }
   148  
   149  func TestNoopAgentConfigure(t *testing.T) {
   150  	n := &noopAgent{}
   151  	h := &mockHypervisor{}
   152  	id := "foobar"
   153  	sharePath := "foobarDir"
   154  	assert := assert.New(t)
   155  	err := n.configure(h, id, sharePath, true, nil)
   156  	assert.NoError(err)
   157  }
   158  
   159  func TestNoopAgentGetSharePath(t *testing.T) {
   160  	n := &noopAgent{}
   161  	path := n.getSharePath("")
   162  	assert := assert.New(t)
   163  	assert.Empty(path)
   164  }
   165  
   166  func TestNoopAgentStartProxy(t *testing.T) {
   167  	assert := assert.New(t)
   168  	n := &noopAgent{}
   169  	sandbox, _, err := testCreateNoopContainer()
   170  
   171  	assert.NoError(err)
   172  	defer cleanUp()
   173  	err = n.startProxy(sandbox)
   174  	assert.NoError(err)
   175  }
   176  
   177  func TestNoopAgentProcessListContainer(t *testing.T) {
   178  	assert := assert.New(t)
   179  	n := &noopAgent{}
   180  	sandbox, container, err := testCreateNoopContainer()
   181  	assert.NoError(err)
   182  	defer cleanUp()
   183  	_, err = n.processListContainer(sandbox, *container, ProcessListOptions{})
   184  	assert.NoError(err)
   185  }
   186  
   187  func TestNoopAgentReseedRNG(t *testing.T) {
   188  	assert := assert.New(t)
   189  	n := &noopAgent{}
   190  	err := n.reseedRNG([]byte{})
   191  	assert.NoError(err)
   192  }
   193  
   194  func TestNoopAgentUpdateInterface(t *testing.T) {
   195  	assert := assert.New(t)
   196  	n := &noopAgent{}
   197  	_, err := n.updateInterface(nil)
   198  	assert.NoError(err)
   199  }
   200  
   201  func TestNoopAgentListInterfaces(t *testing.T) {
   202  	assert := assert.New(t)
   203  	n := &noopAgent{}
   204  	_, err := n.listInterfaces()
   205  	assert.NoError(err)
   206  }
   207  
   208  func TestNoopAgentUpdateRoutes(t *testing.T) {
   209  	assert := assert.New(t)
   210  	n := &noopAgent{}
   211  	_, err := n.updateRoutes(nil)
   212  	assert.NoError(err)
   213  }
   214  
   215  func TestNoopAgentListRoutes(t *testing.T) {
   216  	n := &noopAgent{}
   217  	assert := assert.New(t)
   218  	_, err := n.listRoutes()
   219  	assert.NoError(err)
   220  }
   221  
   222  func TestNoopAgentRSetProxy(t *testing.T) {
   223  	n := &noopAgent{}
   224  	p := &noopProxy{}
   225  	s := &Sandbox{}
   226  	assert := assert.New(t)
   227  	err := n.setProxy(s, p, 0, "")
   228  	assert.NoError(err)
   229  }
   230  
   231  func TestNoopGetAgentUrl(t *testing.T) {
   232  	assert := assert.New(t)
   233  	n := &noopAgent{}
   234  
   235  	url, err := n.getAgentURL()
   236  	assert.Nil(err)
   237  	assert.Empty(url)
   238  }
   239  
   240  func TestNoopCopyFile(t *testing.T) {
   241  	assert := assert.New(t)
   242  	n := &noopAgent{}
   243  
   244  	err := n.copyFile("", "")
   245  	assert.Nil(err)
   246  }
   247  
   248  func TestNoopGetOOMEvent(t *testing.T) {
   249  	assert := assert.New(t)
   250  	n := &noopAgent{}
   251  
   252  	containerID, err := n.getOOMEvent()
   253  	assert.Nil(err)
   254  	assert.Empty(containerID)
   255  }