open-nomad/client/util_test.go

76 lines
1.6 KiB
Go
Raw Normal View History

2015-08-20 23:07:26 +00:00
package client
import (
"reflect"
"testing"
2015-08-23 21:47:51 +00:00
"github.com/hashicorp/nomad/helper/uuid"
2015-08-23 21:47:51 +00:00
"github.com/hashicorp/nomad/nomad/mock"
"github.com/hashicorp/nomad/nomad/structs"
2015-08-20 23:07:26 +00:00
)
2015-08-23 21:47:51 +00:00
func TestDiffAllocs(t *testing.T) {
2016-02-19 03:19:25 +00:00
t.Parallel()
2015-08-23 21:47:51 +00:00
alloc1 := mock.Alloc() // Ignore
alloc2 := mock.Alloc() // Update
alloc2u := new(structs.Allocation)
*alloc2u = *alloc2
alloc2u.AllocModifyIndex += 1
2015-08-23 21:47:51 +00:00
alloc3 := mock.Alloc() // Remove
alloc4 := mock.Alloc() // Add
exist := []*structs.Allocation{
alloc1,
alloc2,
alloc3,
}
update := &allocUpdates{
pulled: map[string]*structs.Allocation{
alloc2u.ID: alloc2u,
alloc4.ID: alloc4,
},
filtered: map[string]struct{}{
2017-09-26 22:26:33 +00:00
alloc1.ID: {},
},
2015-08-23 21:47:51 +00:00
}
result := diffAllocs(exist, update)
2015-08-23 21:47:51 +00:00
if len(result.ignore) != 1 || result.ignore[0] != alloc1 {
t.Fatalf("Bad: %#v", result.ignore)
}
if len(result.added) != 1 || result.added[0] != alloc4 {
t.Fatalf("Bad: %#v", result.added)
}
if len(result.removed) != 1 || result.removed[0] != alloc3 {
t.Fatalf("Bad: %#v", result.removed)
}
if len(result.updated) != 1 {
t.Fatalf("Bad: %#v", result.updated)
}
if result.updated[0].exist != alloc2 || result.updated[0].updated != alloc2u {
t.Fatalf("Bad: %#v", result.updated)
}
}
2015-08-20 23:07:26 +00:00
func TestShuffleStrings(t *testing.T) {
2016-02-19 03:19:25 +00:00
t.Parallel()
2015-08-20 23:07:26 +00:00
// Generate input
inp := make([]string, 10)
for idx := range inp {
inp[idx] = uuid.Generate()
2015-08-20 23:07:26 +00:00
}
// Copy the input
orig := make([]string, len(inp))
copy(orig, inp)
// Shuffle
shuffleStrings(inp)
// Ensure order is not the same
if reflect.DeepEqual(inp, orig) {
t.Fatalf("shuffle failed")
}
}