ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sergi Vladykin <sergi.vlady...@gmail.com>
Subject Re: Nodes starts in tests
Date Sun, 20 Sep 2015 17:51:58 GMT
Vladimir,

Setting setLocalHost to 127.0.0.1 with shared ipfinder did not help me much
on my mac, at least on tests with awaitPartitionMapExchange.

As far as I understand we don't need to do awaitPartitionMapExchange when
starting cache dynamically on stable topology?

Sergi

2015-09-20 14:25 GMT+03:00 Sergey Kozlov <skozlov@gridgain.com>:

> +1 Sergi idea
>
> Create/destroy cache with unique names should be enough to isolated test
> logic.
> If failed test case depends  which tests were executed (or weren't
> executed) earlier the it means a bug or non-determenistic test code.
>
> ---------- Forwarded message ----------
> From: Dmitriy Setrakyan <dsetrakyan@apache.org>
> Date: Sun, Sep 20, 2015 at 1:46 PM
> Subject: Re: Nodes starts in tests
> To: dev@ignite.apache.org
>
>
> On Sun, Sep 20, 2015 at 1:34 PM, Branko ─îibej <brane@apache.org> wrote:
>
> > On 20.09.2015 10:11, Yakov Zhdanov wrote:
> > > Very cool idea! However this will not be working in 100% cases since
> > > sometimes we need custom grid configurations, SPIs, etc, but for
> > > significant number of tests this will work.
> >
> > This is actually, IMO, a very bad idea. One of the most important
> > principles when designing tests is that each test case should be
> > independent of others. In practice that means that if you run test cases
> > in random order, their results should always be the same. If a test case
> > depends on a particular way the grid is started up, then moving the grid
> > startup outside the test case will introduce dependencies between test
> > cases that could hide bugs.
> >
> > The primary goal of a test suite is not to be efficient and fast but to
> > be accurate.
> >
>
> Brane, if we test cache behavior (which we do a lot), it is enough to
> create/destroy caches using the same node in each test, rather than
> start/stop the node itself. Every test should use its own instance of
> cache, thus not depending on other tests or test order.
>
> I believe that this will speed up test execution in many cases.
>
> D.
>
>
> >
> > -- Brane
> >
> >
> > > 2015-09-20 11:00 GMT+03:00 Sergi Vladykin <sergi.vladykin@gmail.com>:
> > >
> > >> Guys,
> > >>
> > >> A little observation. We have really many tests which start and stop
> > nodes
> > >> for each test method.
> > >> Example is IgniteCacheAbstractQuerySelfTest, it contains about 30 test
> > >> methods and 3 subclasses.
> > >> In beforeTest method it starts nodes in afterTest it stops them, while
> > >> cache setup is the same.
> > >>
> > >> What I'm trying to say is that each test method itself takes
> > milliseconds
> > >> to run, but grid start/stop takes* more than 5 seconds* for each test
> > >> method. So from the standpoint of time we are testing grid start/stop
> > all
> > >> the time. It is not surprising that our tests take very long time to
> > >> finish.
> > >>
> > >> Since we already support dynamic cache start/destroy which are much
> more
> > >> fast than grid start/stop,
> > >> I think we should go through a refactoring and use existing nodes
> > within a
> > >> suite as much as possible.
> > >> I believe this can reduce run time of cache related tests like 10
> times.
> > >>
> > >> Sergi
> > >>
> >
> >
>
>
>
> --
> Sergey Kozlov
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message