This is an automated email from the ASF dual-hosted git repository.
pbacsko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/yunikorn-core.git
The following commit(s) were added to refs/heads/master by this push:
new 84f61613 [YUNIKORN-2397] Improve plugin registration unit test
coverage (#791)
84f61613 is described below
commit 84f616132c4c5630f68e94f88a17bf7fc7071a5c
Author: Wilfred Spiegelenburg <[email protected]>
AuthorDate: Wed Feb 7 11:58:15 2024 +0100
[YUNIKORN-2397] Improve plugin registration unit test coverage (#791)
New tests for plugin registration to cover all use cases:
- no interface
- single interface
- both interfaces
- multiple registrations each with one interface
Closes: #791
Signed-off-by: Peter Bacsko <[email protected]>
---
pkg/plugins/plugins_test.go | 71 +++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 68 insertions(+), 3 deletions(-)
diff --git a/pkg/plugins/plugins_test.go b/pkg/plugins/plugins_test.go
index 23b07c38..f992f8bc 100644
--- a/pkg/plugins/plugins_test.go
+++ b/pkg/plugins/plugins_test.go
@@ -23,11 +23,76 @@ import (
"gotest.tools/v3/assert"
- "github.com/apache/yunikorn-core/pkg/mock"
+ "github.com/apache/yunikorn-scheduler-interface/lib/go/si"
)
+type NoPluginImplemented struct{}
+
+type RMPluginImplemented struct{}
+
+type StateDumpImplemented struct{}
+
+type AllPluginsImplemented struct {
+ RMPluginImplemented
+ StateDumpImplemented
+}
+
+func (f *RMPluginImplemented) UpdateApplication(_ *si.ApplicationResponse)
error {
+ return nil
+}
+
+func (f *RMPluginImplemented) UpdateAllocation(_ *si.AllocationResponse) error
{
+ return nil
+}
+
+func (f *RMPluginImplemented) UpdateNode(_ *si.NodeResponse) error {
+ return nil
+}
+
+func (f *RMPluginImplemented) Predicates(_ *si.PredicatesArgs) error {
+ return nil
+}
+
+func (f *RMPluginImplemented) PreemptionPredicates(_
*si.PreemptionPredicatesArgs) *si.PreemptionPredicatesResponse {
+ return nil
+}
+
+func (f *RMPluginImplemented) SendEvent(_ []*si.EventRecord) {
+ // do nothing
+}
+
+func (f *RMPluginImplemented) UpdateContainerSchedulingState(_
*si.UpdateContainerSchedulingStateRequest) {
+}
+
+func (f *StateDumpImplemented) GetStateDump() (string, error) {
+ return "", nil
+}
+
func TestRegisterPlugins(t *testing.T) {
plugins = SchedulerPlugins{}
- RegisterSchedulerPlugin(&mock.ResourceManagerCallback{})
- assert.Assert(t, GetResourceManagerCallbackPlugin() != nil,
"ResourceManagerCallbackPlugin plugin should have been registered")
+ RegisterSchedulerPlugin(&NoPluginImplemented{})
+ assert.Assert(t, GetResourceManagerCallbackPlugin() == nil,
"ResourceManagerCallback plugin should not have been registered")
+ assert.Assert(t, GetStateDumpPlugin() == nil, "StateDumpCallback plugin
should not have been registered")
+
+ RegisterSchedulerPlugin(&RMPluginImplemented{})
+ assert.Assert(t, GetResourceManagerCallbackPlugin() != nil,
"ResourceManagerCallback plugin should have been registered")
+ assert.Assert(t, GetStateDumpPlugin() == nil, "StateDumpCallback plugin
should not have been registered")
+ UnregisterSchedulerPlugins()
+
+ RegisterSchedulerPlugin(&StateDumpImplemented{})
+ assert.Assert(t, GetResourceManagerCallbackPlugin() == nil,
"ResourceManagerCallback plugin should not have been registered")
+ assert.Assert(t, GetStateDumpPlugin() != nil, "StateDumpCallback plugin
should have been registered")
+ UnregisterSchedulerPlugins()
+
+ RegisterSchedulerPlugin(&AllPluginsImplemented{})
+ assert.Assert(t, GetResourceManagerCallbackPlugin() != nil,
"ResourceManagerCallback plugin should have been registered")
+ assert.Assert(t, GetStateDumpPlugin() != nil, "StateDumpCallback plugin
should have been registered")
+ UnregisterSchedulerPlugins()
+
+ // registration are additive
+ RegisterSchedulerPlugin(&RMPluginImplemented{})
+ RegisterSchedulerPlugin(&StateDumpImplemented{})
+ assert.Assert(t, GetResourceManagerCallbackPlugin() != nil,
"ResourceManagerCallback plugin should have been registered")
+ assert.Assert(t, GetStateDumpPlugin() != nil, "StateDumpCallback plugin
should have been registered")
+ UnregisterSchedulerPlugins()
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]