You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Andrey Mashenkov (Jira)" <ji...@apache.org> on 2023/03/22 10:23:00 UTC

[jira] [Updated] (IGNITE-19093) Create standalone MetaStorage implementation for test purposes

     [ https://issues.apache.org/jira/browse/IGNITE-19093?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andrey Mashenkov updated IGNITE-19093:
--------------------------------------
    Description: 
*Motivation.*
Some components depends on MetaStorage API and doesn’t tested well.
In tests, we either have to create "100500" mocks, which doesn’t implement any quasi-real behaviour (e.g. we skip serialization step), or have to implement end-to-end test and start-up real nodes.

See {{DistributionZoneManagerConfigurationChangesTest}}
Here, initialization of all the mocks looks longer than the tests themselves.
And we copy-paste this boilerplate code everywhere, when we need a bit more than stupid stub.

*Suggestion*
Let's 
* create standalone version of MetaStorage for test purposes, which will just push raft command directly to a metastorage listener.
* replace boilerplate code in tests with new metastorage implementation.

  was:
*Motivation.*
Some components depends on MetaStorage API and doesn’t tested well.
In tests, we either have to create 100500 mocks, which doesn’t implement any quasi-real behaviour (e.g. we skip serialization step), or have to implement end-to-end test and start-up real nodes.

See {{DistributionZoneManagerConfigurationChangesTest}}
Here, initialization of all the mocks looks longer than the tests themselves.
And we copy-paste this boilerplate code everywhere, when we need a bit more than stupid stub.

*Suggestion*
Let's 
* create standalone version of MetaStorage for test purposes, which will just push raft command directly to a metastorage listener.
* replace boilerplate code in tests with new metastorage implementation.


> Create standalone MetaStorage implementation for test purposes
> --------------------------------------------------------------
>
>                 Key: IGNITE-19093
>                 URL: https://issues.apache.org/jira/browse/IGNITE-19093
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Andrey Mashenkov
>            Assignee: Andrey Mashenkov
>            Priority: Major
>              Labels: ignite-3
>             Fix For: 3.0.0-beta2
>
>
> *Motivation.*
> Some components depends on MetaStorage API and doesn’t tested well.
> In tests, we either have to create "100500" mocks, which doesn’t implement any quasi-real behaviour (e.g. we skip serialization step), or have to implement end-to-end test and start-up real nodes.
> See {{DistributionZoneManagerConfigurationChangesTest}}
> Here, initialization of all the mocks looks longer than the tests themselves.
> And we copy-paste this boilerplate code everywhere, when we need a bit more than stupid stub.
> *Suggestion*
> Let's 
> * create standalone version of MetaStorage for test purposes, which will just push raft command directly to a metastorage listener.
> * replace boilerplate code in tests with new metastorage implementation.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)