diff --git a/scheduler/strategy/spread_test.go b/scheduler/strategy/spread_test.go index 4571df611c..5d0cd0eb7a 100644 --- a/scheduler/strategy/spread_test.go +++ b/scheduler/strategy/spread_test.go @@ -8,6 +8,44 @@ import ( "github.com/stretchr/testify/assert" ) +func TestSpreadPlaceDifferentNodeSize(t *testing.T) { + s := &SpreadPlacementStrategy{} + + nodes := []*node.Node{ + createNode(fmt.Sprintf("node-0"), 64, 21), + createNode(fmt.Sprintf("node-1"), 128, 42), + } + + // add 60 containers + for i := 0; i < 60; i++ { + config := createConfig(0, 0) + node := selectTopNode(t, s, config, nodes) + assert.NoError(t, node.AddContainer(createContainer(fmt.Sprintf("c%d", i), config))) + } + + assert.Equal(t, len(nodes[0].Containers), 30) + assert.Equal(t, len(nodes[1].Containers), 30) +} + +func TestSpreadPlaceDifferentNodeSizeCPUs(t *testing.T) { + s := &SpreadPlacementStrategy{} + + nodes := []*node.Node{ + createNode(fmt.Sprintf("node-0"), 64, 21), + createNode(fmt.Sprintf("node-1"), 128, 42), + } + + // add 60 containers 1CPU + for i := 0; i < 60; i++ { + config := createConfig(0, 1) + node := selectTopNode(t, s, config, nodes) + assert.NoError(t, node.AddContainer(createContainer(fmt.Sprintf("c%d", i), config))) + } + + assert.Equal(t, len(nodes[0].Containers), 20) + assert.Equal(t, len(nodes[1].Containers), 40) +} + func TestSpreadPlaceEqualWeight(t *testing.T) { s := &SpreadPlacementStrategy{}