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]

Reply via email to