github.com/bigcommerce/nomad@v0.9.3-bc/client/fingerprint/memory_test.go (about)

     1  package fingerprint
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/hashicorp/nomad/client/config"
     7  	"github.com/hashicorp/nomad/helper/testlog"
     8  	"github.com/hashicorp/nomad/nomad/structs"
     9  
    10  	"github.com/stretchr/testify/require"
    11  )
    12  
    13  func TestMemoryFingerprint(t *testing.T) {
    14  	f := NewMemoryFingerprint(testlog.HCLogger(t))
    15  	node := &structs.Node{
    16  		Attributes: make(map[string]string),
    17  	}
    18  
    19  	request := &FingerprintRequest{Config: &config.Config{}, Node: node}
    20  	var response FingerprintResponse
    21  	err := f.Fingerprint(request, &response)
    22  	if err != nil {
    23  		t.Fatalf("err: %v", err)
    24  	}
    25  
    26  	assertNodeAttributeContains(t, response.Attributes, "memory.totalbytes")
    27  
    28  	if response.Resources == nil {
    29  		t.Fatalf("response resources should not be nil")
    30  	}
    31  
    32  	// COMPAT(0.10): Remove in 0.10
    33  	if response.Resources.MemoryMB == 0 {
    34  		t.Fatalf("Expected node.Resources.MemoryMB to be non-zero")
    35  	}
    36  
    37  	if response.NodeResources.Memory.MemoryMB == 0 {
    38  		t.Fatalf("Expected node.Resources.MemoryMB to be non-zero")
    39  	}
    40  }
    41  
    42  func TestMemoryFingerprint_Override(t *testing.T) {
    43  	f := NewMemoryFingerprint(testlog.HCLogger(t))
    44  	node := &structs.Node{
    45  		Attributes: make(map[string]string),
    46  	}
    47  
    48  	memoryMB := 15000
    49  	request := &FingerprintRequest{Config: &config.Config{MemoryMB: memoryMB}, Node: node}
    50  	var response FingerprintResponse
    51  	err := f.Fingerprint(request, &response)
    52  	if err != nil {
    53  		t.Fatalf("err: %v", err)
    54  	}
    55  
    56  	assertNodeAttributeContains(t, response.Attributes, "memory.totalbytes")
    57  	require := require.New(t)
    58  	require.NotNil(response.Resources)
    59  	require.Equal(response.Resources.MemoryMB, memoryMB)
    60  	require.EqualValues(response.NodeResources.Memory.MemoryMB, memoryMB)
    61  }