From fa0bfe9038a0458e3d0a342cc0d484267b4a883e Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Wed, 22 Apr 2026 16:55:50 +0200 Subject: [PATCH] Add more test cases for rpc label filter (#6483) --- server/rpc/filter_test.go | 90 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 89 insertions(+), 1 deletion(-) diff --git a/server/rpc/filter_test.go b/server/rpc/filter_test.go index fb9b8f4abe..ece37eff2e 100644 --- a/server/rpc/filter_test.go +++ b/server/rpc/filter_test.go @@ -76,7 +76,7 @@ func TestCreateFilterFunc(t *testing.T) { wantScore: 0, }, { - name: "Missing label", + name: "Missing required label on agent", agentFilter: rpc.Filter{ Labels: map[string]string{"platform": "linux"}, }, @@ -130,6 +130,94 @@ func TestCreateFilterFunc(t *testing.T) { wantMatched: true, wantScore: 20, }, + { + name: "Two different labels", + agentFilter: rpc.Filter{ + Labels: map[string]string{"docker": "true"}, + }, + task: &model.Task{ + Labels: map[string]string{"hello": "true"}, + }, + wantMatched: false, + wantScore: 0, + }, + { + name: "Exact match", + agentFilter: rpc.Filter{ + Labels: map[string]string{"docker": "true"}, + }, + task: &model.Task{ + Labels: map[string]string{"docker": "true"}, + }, + wantMatched: true, + wantScore: 10, + }, + { + name: "Agent without labels", + agentFilter: rpc.Filter{ + Labels: map[string]string{}, + }, + task: &model.Task{ + Labels: map[string]string{"docker": "true"}, + }, + wantMatched: false, + wantScore: 0, + }, + { + name: "Task without labels", + agentFilter: rpc.Filter{ + Labels: map[string]string{"docker": "true"}, + }, + task: &model.Task{ + Labels: map[string]string{}, + }, + wantMatched: true, + wantScore: 0, + }, + { + name: "Agent and task without labels", + agentFilter: rpc.Filter{ + Labels: map[string]string{}, + }, + task: &model.Task{ + Labels: map[string]string{}, + }, + wantMatched: true, + wantScore: 0, + }, + { + name: "Multiple matching labels", + agentFilter: rpc.Filter{ + Labels: map[string]string{"docker": "true", "shell": "true", "gpu": "true"}, + }, + task: &model.Task{ + Labels: map[string]string{"docker": "true", "shell": "true", "gpu": "true"}, + }, + wantMatched: true, + wantScore: 30, + }, + { + name: "Additional label in agent", + agentFilter: rpc.Filter{ + Labels: map[string]string{"docker": "true", "shell": "true", "gpu": "true"}, + }, + task: &model.Task{ + Labels: map[string]string{"docker": "true", "shell": "true"}, + }, + wantMatched: true, + wantScore: 20, + }, + { + name: "Additional label in task", + agentFilter: rpc.Filter{ + Labels: map[string]string{"docker": "true", "shell": "true"}, + }, + task: &model.Task{ + Labels: map[string]string{"docker": "true", "shell": "true", "gpu": "true"}, + }, + wantMatched: false, + wantScore: 0, + }, } for _, tt := range tests {