github.com/hernad/nomad@v1.6.112/nomad/drainer/drainer_util_test.go (about) 1 // Copyright (c) HashiCorp, Inc. 2 // SPDX-License-Identifier: MPL-2.0 3 4 package drainer 5 6 import ( 7 "testing" 8 9 "github.com/hernad/nomad/ci" 10 "github.com/hernad/nomad/nomad/structs" 11 "github.com/stretchr/testify/require" 12 ) 13 14 func TestDrainer_PartitionAllocDrain(t *testing.T) { 15 ci.Parallel(t) 16 // Set the max ids per reap to something lower. 17 maxIdsPerTxn := 2 18 19 require := require.New(t) 20 transitions := map[string]*structs.DesiredTransition{"a": nil, "b": nil, "c": nil} 21 evals := []*structs.Evaluation{nil, nil, nil} 22 requests := partitionAllocDrain(maxIdsPerTxn, transitions, evals) 23 require.Len(requests, 3) 24 25 first := requests[0] 26 require.Len(first.Transitions, 2) 27 require.Len(first.Evals, 0) 28 29 second := requests[1] 30 require.Len(second.Transitions, 1) 31 require.Len(second.Evals, 1) 32 33 third := requests[2] 34 require.Len(third.Transitions, 0) 35 require.Len(third.Evals, 2) 36 } 37 38 func TestDrainer_PartitionIds(t *testing.T) { 39 ci.Parallel(t) 40 require := require.New(t) 41 42 // Set the max ids per reap to something lower. 43 maxIdsPerTxn := 2 44 45 ids := []string{"1", "2", "3", "4", "5"} 46 requests := partitionIds(maxIdsPerTxn, ids) 47 require.Len(requests, 3) 48 require.Len(requests[0], 2) 49 require.Len(requests[1], 2) 50 require.Len(requests[2], 1) 51 require.Equal(requests[0][0], ids[0]) 52 require.Equal(requests[0][1], ids[1]) 53 require.Equal(requests[1][0], ids[2]) 54 require.Equal(requests[1][1], ids[3]) 55 require.Equal(requests[2][0], ids[4]) 56 }