Browse Source

functional-tester/tester: test shuffled cases are equal when sorted

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
Gyuho Lee 7 years ago
parent
commit
6d8d8a6dcb
1 changed files with 13 additions and 0 deletions
  1. 13 0
      tools/functional-tester/tester/cluster_test.go

+ 13 - 0
tools/functional-tester/tester/cluster_test.go

@@ -16,6 +16,7 @@ package tester
 
 
 import (
 import (
 	"reflect"
 	"reflect"
+	"sort"
 	"testing"
 	"testing"
 
 
 	"github.com/coreos/etcd/tools/functional-tester/rpcpb"
 	"github.com/coreos/etcd/tools/functional-tester/rpcpb"
@@ -186,4 +187,16 @@ func Test_newCluster(t *testing.T) {
 	if reflect.DeepEqual(fs2, fs3) {
 	if reflect.DeepEqual(fs2, fs3) {
 		t.Fatalf("expected reshuffled failure cases from %q, got %q", fs2, fs3)
 		t.Fatalf("expected reshuffled failure cases from %q, got %q", fs2, fs3)
 	}
 	}
+
+	// shuffle ensures visit all exactly once
+	// so when sorted, failure cases must be equal
+	sort.Strings(fs1)
+	sort.Strings(fs2)
+	sort.Strings(fs3)
+	if !reflect.DeepEqual(fs1, fs2) {
+		t.Fatalf("expected %q, got %q", fs1, fs2)
+	}
+	if !reflect.DeepEqual(fs2, fs3) {
+		t.Fatalf("expected %q, got %q", fs2, fs3)
+	}
 }
 }