Skip to content

Commit

Permalink
fix permission race condition in foreigncluster test
Browse files Browse the repository at this point in the history
  • Loading branch information
aleoli committed Jul 23, 2021
1 parent c1ce7c4 commit 1b77477
Showing 1 changed file with 27 additions and 17 deletions.
Expand Up @@ -5,6 +5,7 @@ import (
"os"
"path/filepath"
"testing"
"time"

. "github.com/onsi/ginkgo"
. "github.com/onsi/ginkgo/extensions/table"
Expand All @@ -29,6 +30,11 @@ import (
testUtils "github.com/liqotech/liqo/pkg/utils/testUtils"
)

const (
timeout = time.Second * 30
interval = time.Millisecond * 250
)

type configMock struct {
config v1alpha1.DiscoveryConfig
}
Expand Down Expand Up @@ -701,15 +707,17 @@ var _ = Describe("ForeignClusterOperator", func() {
Expect(controller.ensurePermission(ctx, &c.fc)).To(Succeed())

var roleBindingList rbacv1.RoleBindingList
Expect(controller.Client.List(ctx, &roleBindingList)).To(Succeed())

names := make([]string, len(roleBindingList.Items))
for i := range roleBindingList.Items {
names[i] = roleBindingList.Items[i].Name
}

Expect(names).To(c.expectedIncoming)
Expect(names).To(c.expectedOutgoing)
Eventually(func() []string {
Expect(controller.Client.List(ctx, &roleBindingList)).To(Succeed())

names := make([]string, len(roleBindingList.Items))
for i := range roleBindingList.Items {
if roleBindingList.Items[i].DeletionTimestamp.IsZero() {
names[i] = roleBindingList.Items[i].Name
}
}
return names
}, timeout, interval).Should(And(c.expectedIncoming, c.expectedOutgoing))

By("Delete RoleBindings")

Expand All @@ -719,15 +727,17 @@ var _ = Describe("ForeignClusterOperator", func() {

Expect(controller.ensurePermission(ctx, &c.fc)).To(Succeed())

Expect(controller.Client.List(ctx, &roleBindingList)).To(Succeed())

names = make([]string, len(roleBindingList.Items))
for i := range roleBindingList.Items {
names[i] = roleBindingList.Items[i].Name
}
Eventually(func() []string {
Expect(controller.Client.List(ctx, &roleBindingList)).To(Succeed())

Expect(names).To(c.expectedIncoming)
Expect(names).To(c.expectedOutgoing)
names := make([]string, len(roleBindingList.Items))
for i := range roleBindingList.Items {
if roleBindingList.Items[i].DeletionTimestamp.IsZero() {
names[i] = roleBindingList.Items[i].Name
}
}
return names
}, timeout, interval).Should(And(c.expectedIncoming, c.expectedOutgoing))
},

Entry("none peering", permissionTestcase{
Expand Down

0 comments on commit 1b77477

Please sign in to comment.