open-nomad/nomad/plan_apply_pool_test.go

61 lines
1.0 KiB
Go
Raw Normal View History

package nomad
import (
"testing"
"github.com/hashicorp/nomad/nomad/mock"
"github.com/hashicorp/nomad/nomad/structs"
)
func TestEvaluatePool(t *testing.T) {
state := testStateStore(t)
node := mock.Node()
state.UpsertNode(1000, node)
snap, _ := state.Snapshot()
alloc := mock.Alloc()
plan := &structs.Plan{
NodeAllocation: map[string][]*structs.Allocation{
node.ID: []*structs.Allocation{alloc},
},
}
pool := NewEvaluatePool(1, 4)
defer pool.Shutdown()
// Push a request
req := pool.RequestCh()
req <- evaluateRequest{snap, plan, node.ID}
// Get the response
res := <-pool.ResultCh()
// Verify response
if res.err != nil {
t.Fatalf("err: %v", res.err)
}
if !res.fit {
t.Fatalf("bad")
}
}
2016-02-20 21:23:34 +00:00
func TestEvaluatePool_Resize(t *testing.T) {
pool := NewEvaluatePool(1, 4)
defer pool.Shutdown()
2016-02-20 21:25:49 +00:00
if n := pool.Size(); n != 1 {
t.Fatalf("bad: %d", n)
}
2016-02-20 21:23:34 +00:00
// Scale up
pool.SetSize(4)
2016-02-20 21:25:49 +00:00
if n := pool.Size(); n != 4 {
t.Fatalf("bad: %d", n)
}
2016-02-20 21:23:34 +00:00
// Scale down
pool.SetSize(2)
2016-02-20 21:25:49 +00:00
if n := pool.Size(); n != 2 {
t.Fatalf("bad: %d", n)
}
2016-02-20 21:23:34 +00:00
}