github.com/Ilhicas/nomad@v1.0.4-0.20210304152020-e86851182bc3/plugins/drivers/utils_test.go (about)

     1  package drivers
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/hashicorp/nomad/helper/uuid"
     7  	"github.com/hashicorp/nomad/nomad/structs"
     8  	"github.com/stretchr/testify/require"
     9  )
    10  
    11  func TestResourceUsageRoundTrip(t *testing.T) {
    12  	input := &ResourceUsage{
    13  		CpuStats: &CpuStats{
    14  			SystemMode:       0,
    15  			UserMode:         0.9963907032120152,
    16  			TotalTicks:       21.920595295932515,
    17  			ThrottledPeriods: 2321,
    18  			ThrottledTime:    123,
    19  			Percent:          0.9963906952696598,
    20  			Measured:         []string{"System Mode", "User Mode", "Percent"},
    21  		},
    22  		MemoryStats: &MemoryStats{
    23  			RSS:            25681920,
    24  			Swap:           15681920,
    25  			Usage:          12,
    26  			MaxUsage:       23,
    27  			KernelUsage:    34,
    28  			KernelMaxUsage: 45,
    29  			Measured:       []string{"RSS", "Swap"},
    30  		},
    31  	}
    32  
    33  	parsed := resourceUsageFromProto(resourceUsageToProto(input))
    34  
    35  	require.EqualValues(t, parsed, input)
    36  }
    37  
    38  func TestTaskConfigRoundTrip(t *testing.T) {
    39  
    40  	input := &TaskConfig{
    41  		ID:            uuid.Generate(),
    42  		Name:          "task",
    43  		JobName:       "job",
    44  		TaskGroupName: "group",
    45  		Resources: &Resources{
    46  			NomadResources: &structs.AllocatedTaskResources{
    47  				Cpu: structs.AllocatedCpuResources{
    48  					CpuShares: int64(100),
    49  				},
    50  				Memory: structs.AllocatedMemoryResources{
    51  					MemoryMB: int64(300),
    52  				},
    53  			},
    54  			LinuxResources: &LinuxResources{
    55  				MemoryLimitBytes: 300 * 1024 * 1024,
    56  				CPUShares:        100,
    57  				PercentTicks:     float64(100) / float64(3200),
    58  			},
    59  			Ports: &structs.AllocatedPorts{
    60  				{
    61  					Label:  "port",
    62  					Value:  23456,
    63  					To:     8080,
    64  					HostIP: "10.0.0.1",
    65  				},
    66  			},
    67  		},
    68  		Devices: []*DeviceConfig{
    69  			{
    70  				TaskPath:    "task",
    71  				HostPath:    "host",
    72  				Permissions: "perms",
    73  			},
    74  		},
    75  		Mounts: []*MountConfig{
    76  			{
    77  				TaskPath: "task",
    78  				HostPath: "host",
    79  				Readonly: true,
    80  			},
    81  		},
    82  		Env:        map[string]string{"gir": "zim"},
    83  		DeviceEnv:  map[string]string{"foo": "bar"},
    84  		User:       "user",
    85  		AllocDir:   "allocDir",
    86  		StdoutPath: "stdout",
    87  		StderrPath: "stderr",
    88  		AllocID:    uuid.Generate(),
    89  		NetworkIsolation: &NetworkIsolationSpec{
    90  			Mode:   NetIsolationModeGroup,
    91  			Path:   "path",
    92  			Labels: map[string]string{"net": "abc"},
    93  		},
    94  		DNS: &DNSConfig{
    95  			Servers:  []string{"8.8.8.8"},
    96  			Searches: []string{".consul"},
    97  			Options:  []string{"ndots:2"},
    98  		},
    99  	}
   100  
   101  	parsed := taskConfigFromProto(taskConfigToProto(input))
   102  
   103  	require.EqualValues(t, input, parsed)
   104  
   105  }