Skip to content

Commit

Permalink
Add e2e test
Browse files Browse the repository at this point in the history
Signed-off-by: Xuzheng Chang <changxuzheng@huawei.com>
  • Loading branch information
Monokaix committed Dec 29, 2023
1 parent 721ce15 commit e29821f
Show file tree
Hide file tree
Showing 4 changed files with 85 additions and 3 deletions.
76 changes: 76 additions & 0 deletions test/e2e/schedulingaction/reclaim.go
Original file line number Diff line number Diff line change
Expand Up @@ -535,6 +535,82 @@ var _ = Describe("Reclaim E2E Test", func() {

})

// Reclaim for capacity plugin.
It("Capacity Reclaim Case 11: Multi reclaimed queue", func() {
q1 := "reclaim-q1"
q2 := "reclaim-q2"
q3 := "reclaim-q3"
q4 := "reclaim-q4"
ctx := e2eutil.InitTestContext(e2eutil.Options{
Queues: []string{q1, q2, q3, q4},
NodesNumLimit: 4,
DeservedResource: map[string]string{
q1: `{"cpu":"1000m"}`,
q2: `{"cpu":"1000m"}`,
q3: `{"cpu":"1000m"}`,
q4: `{"cpu":"1000m"}`,
},
NodesResourceLimit: e2eutil.CPU1Mem1,
PriorityClasses: map[string]int32{
"low-priority": 10,
"high-priority": 10000,
},
})

defer e2eutil.CleanupTestContext(ctx)

By("Setup initial jobs")

spec := &e2eutil.JobSpec{
Tasks: []e2eutil.TaskSpec{
{
Img: e2eutil.DefaultNginxImage,
Req: e2eutil.CPU1Mem1,
Min: 1,
Rep: 2,
Labels: map[string]string{schedulingv1beta1.PodPreemptable: "true"},
},
},
}

spec.Name = "reclaim-j1"
spec.Queue = q1
spec.Pri = "low-priority"
job1 := e2eutil.CreateJob(ctx, spec)
err := e2eutil.WaitJobReady(ctx, job1)
Expect(err).NotTo(HaveOccurred())

spec.Name = "reclaim-j2"
spec.Queue = q2
spec.Pri = "low-priority"
job2 := e2eutil.CreateJob(ctx, spec)
err = e2eutil.WaitJobReady(ctx, job2)
Expect(err).NotTo(HaveOccurred())

err = WaitQueueStatus(ctx, "Running", 1, q1)
Expect(err).NotTo(HaveOccurred(), "Error waiting for queue1 running")

err = WaitQueueStatus(ctx, "Running", 1, q2)
Expect(err).NotTo(HaveOccurred(), "Error waiting for queue2 running")

By("Create coming jobs")

_, err = CreateReclaimJob(ctx, e2eutil.CPU1Mem1, "reclaim-j3", q3, "high-priority", "", true)
Expect(err).NotTo(HaveOccurred(), "Wait for job4 failed")

_, err = CreateReclaimJob(ctx, e2eutil.CPU1Mem1, "reclaim-j4", q4, "high-priority", "", true)
Expect(err).NotTo(HaveOccurred(), "Wait for job4 failed")

By("Make sure all job running")

err = WaitQueueStatus(ctx, "Running", 1, q3)
Expect(err).NotTo(HaveOccurred(), "Error waiting for queue3 running")

err = WaitQueueStatus(ctx, "Running", 1, q4)
Expect(err).NotTo(HaveOccurred(), "Error waiting for queue4 running")

})

It("Reclaim", func() {
Skip("skip: the case has some problem")
q1, q2 := "reclaim-q1", "reclaim-q2"
Expand Down
2 changes: 1 addition & 1 deletion test/e2e/stress/queue.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ var _ = ginkgo.Describe("[Stress] Queue Test", func() {
defer wg.Done()

queueName := fmt.Sprintf("queue-%d", index)
e2eutil.CreateQueue(ctx, queueName)
e2eutil.CreateQueue(ctx, queueName, "")
err := e2eutil.WaitQueueStatus(func() (bool, error) {
queue, err := ctx.Vcclient.SchedulingV1beta1().Queues().Get(context.TODO(), queueName, metav1.GetOptions{})
gomega.Expect(err).NotTo(gomega.HaveOccurred())
Expand Down
7 changes: 5 additions & 2 deletions test/e2e/util/queue.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,12 +58,15 @@ func CreateQueueWithQueueSpec(ctx *TestContext, queueSpec *QueueSpec) {
}

// CreateQueue creates Queue with the specified name
func CreateQueue(ctx *TestContext, q string) {
func CreateQueue(ctx *TestContext, q, deservedResource string) {
_, err := ctx.Vcclient.SchedulingV1beta1().Queues().Get(context.TODO(), q, metav1.GetOptions{})
if err != nil {
_, err := ctx.Vcclient.SchedulingV1beta1().Queues().Create(context.TODO(), &schedulingv1beta1.Queue{
ObjectMeta: metav1.ObjectMeta{
Name: q,
Annotations: map[string]string{
"volcano.sh/deserved-resources": deservedResource,
},
},
Spec: schedulingv1beta1.QueueSpec{
Weight: 1,
Expand All @@ -78,7 +81,7 @@ func CreateQueues(ctx *TestContext) {
By("Creating Queues")

for _, queue := range ctx.Queues {
CreateQueue(ctx, queue)
CreateQueue(ctx, queue, ctx.DeservedResource[queue])
}

// wait for all queues state open
Expand Down
3 changes: 3 additions & 0 deletions test/e2e/util/util.go
Original file line number Diff line number Diff line change
Expand Up @@ -120,13 +120,15 @@ type TestContext struct {

Namespace string
Queues []string
DeservedResource map[string]string
PriorityClasses map[string]int32
UsingPlaceHolder bool
}

type Options struct {
Namespace string
Queues []string
DeservedResource map[string]string
PriorityClasses map[string]int32
NodesNumLimit int
NodesResourceLimit v1.ResourceList
Expand All @@ -144,6 +146,7 @@ func InitTestContext(o Options) *TestContext {
ctx := &TestContext{
Namespace: o.Namespace,
Queues: o.Queues,
DeservedResource: o.DeservedResource,
PriorityClasses: o.PriorityClasses,
Vcclient: VcClient,
Kubeclient: KubeClient,
Expand Down

0 comments on commit e29821f

Please sign in to comment.