mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-08 03:33:56 +00:00
cpuset: Add a few more test cases
Feedback from https://github.com/kubernetes/utils/pull/267 and related reviews. * Equality when insertion order is different * UnsortedList contents * Not-Subset cases * Clone coverage
This commit is contained in:
parent
22d3f67850
commit
b536851fc7
@ -18,6 +18,7 @@ package cpuset
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"reflect"
|
"reflect"
|
||||||
|
"sort"
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -90,6 +91,7 @@ func TestCPUSetEqual(t *testing.T) {
|
|||||||
{New(), New()},
|
{New(), New()},
|
||||||
{New(5), New(5)},
|
{New(5), New(5)},
|
||||||
{New(1, 2, 3, 4, 5), New(1, 2, 3, 4, 5)},
|
{New(1, 2, 3, 4, 5), New(1, 2, 3, 4, 5)},
|
||||||
|
{New(5, 4, 3, 2, 1), New(1, 2, 3, 4, 5)},
|
||||||
}
|
}
|
||||||
|
|
||||||
shouldNotEqual := []struct {
|
shouldNotEqual := []struct {
|
||||||
@ -139,7 +141,13 @@ func TestCPUSetIsSubsetOf(t *testing.T) {
|
|||||||
shouldNotBeSubset := []struct {
|
shouldNotBeSubset := []struct {
|
||||||
s1 CPUSet
|
s1 CPUSet
|
||||||
s2 CPUSet
|
s2 CPUSet
|
||||||
}{}
|
}{
|
||||||
|
// A set with more elements is not a subset.
|
||||||
|
{New(5), New()},
|
||||||
|
|
||||||
|
// Disjoint set is not a subset.
|
||||||
|
{New(6), New(5)},
|
||||||
|
}
|
||||||
|
|
||||||
for _, c := range shouldBeSubset {
|
for _, c := range shouldBeSubset {
|
||||||
if !c.s1.IsSubsetOf(c.s2) {
|
if !c.s1.IsSubsetOf(c.s2) {
|
||||||
@ -255,17 +263,26 @@ func TestCPUSetDifference(t *testing.T) {
|
|||||||
func TestCPUSetList(t *testing.T) {
|
func TestCPUSetList(t *testing.T) {
|
||||||
testCases := []struct {
|
testCases := []struct {
|
||||||
set CPUSet
|
set CPUSet
|
||||||
expected []int
|
expected []int // must be sorted
|
||||||
}{
|
}{
|
||||||
{New(), []int{}},
|
{New(), []int{}},
|
||||||
{New(5), []int{5}},
|
{New(5), []int{5}},
|
||||||
{New(1, 2, 3, 4, 5), []int{1, 2, 3, 4, 5}},
|
{New(1, 2, 3, 4, 5), []int{1, 2, 3, 4, 5}},
|
||||||
|
{New(5, 4, 3, 2, 1), []int{1, 2, 3, 4, 5}},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, c := range testCases {
|
for _, c := range testCases {
|
||||||
result := c.set.List()
|
result := c.set.List()
|
||||||
if !reflect.DeepEqual(result, c.expected) {
|
if !reflect.DeepEqual(result, c.expected) {
|
||||||
t.Fatalf("expected set as slice to be [%v] (got [%v]), s: [%v]", c.expected, result, c.set)
|
t.Fatalf("unexpected List() contents. got [%v] want [%v] (set: [%v])", result, c.expected, c.set)
|
||||||
|
}
|
||||||
|
|
||||||
|
// We cannot rely on internal storage order details for a unit test.
|
||||||
|
// The best we can do is to sort the output of 'UnsortedList'.
|
||||||
|
result = c.set.UnsortedList()
|
||||||
|
sort.Ints(result)
|
||||||
|
if !reflect.DeepEqual(result, c.expected) {
|
||||||
|
t.Fatalf("unexpected UnsortedList() contents. got [%v] want [%v] (set: [%v])", result, c.expected, c.set)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -330,3 +347,12 @@ func TestParse(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestClone(t *testing.T) {
|
||||||
|
original := New(1, 2, 3, 4, 5)
|
||||||
|
clone := original.Clone()
|
||||||
|
|
||||||
|
if !original.Equals(clone) {
|
||||||
|
t.Errorf("expected clone [%v] to equal original [%v]", clone, original)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user