Thanks for comments, I have filed a ticket [1] and will implement it if you don't mind.
1. https://issues.apache.org/jira/browse/IGNITE-10023 пт, 26 окт. 2018 г. в 15:56, Dmitrii Ryabov <somefire...@gmail.com>: > > > waitForCondition(lsnr::check, timeout); > Agree, it is more convenient to use. > пт, 26 окт. 2018 г. в 13:01, Pavel Pereslegin <xxt...@gmail.com>: > > > > Nikita, > > personally, I don’t like that "check()" throws an AssertionError, but in > > the case of a composite listener, it will indicate which of the conditions > > did not work. > > Btw, your case can be solved with custom listener, but I think it's good > > improvement, let's do it. > > > > чт, 25 окт. 2018 г. в 21:31, Andrey Kuznetsov <stku...@gmail.com>: > > > > > Nikita, > > > > > > I like your suggestion. It looks more expressive for me than existing > > > throwing version. > > > > > > чт, 25 окт. 2018 г. в 21:07, Nikita Amelchev <nsamelc...@gmail.com>: > > > > > > > Hi, Igniters. > > > > > > > > I suggest improving new listening test logger. > > > > > > > > I found usage case when needs wait for conditions for test duration > > > > optimization. > > > > For example, that messages A and B will be logged. > > > > > > > > For now, LogListener.check() doesn't return checking result as boolean. > > > > It throws the exception if conditions fail. Code for this case: > > > > > > > > waitForCondition(() -> { > > > > try { > > > > lsnr.check(); > > > > > > > > return true; > > > > } > > > > catch (AssertionError ignored) { > > > > return false; > > > > } > > > > }, timeout); > > > > > > > > For code readability, I suggest make LogListener.check() with boolean > > > type: > > > > > > > > waitForCondition(lsnr::check, timeout); > > > > > > > > Also, it's more understandable when we write explicit assert in tests: > > > > assertTrue("Fail reason.", lsnr.check()); > > > > ср, 23 мая 2018 г. в 14:36, Andrey Kuznetsov <stku...@gmail.com>: > > > > > > > > > > Thanks, Vyacheslav. > > > > > > > > > > Created the issue [1] based on your idea. > > > > > > > > > > [1] https://issues.apache.org/jira/browse/IGNITE-8570 > > > > > > > > > > > > > > > 2018-05-23 12:41 GMT+03:00 Vyacheslav Daradur <daradu...@gmail.com>: > > > > > > > > > > > Hi, Andrey, I have faced this problem too. > > > > > > > > > > > > I'd suggest introducing new logger for tests instead of extending > > > > > > API > > > > > > of *GridStringLogger*. > > > > > > > > > > > > The new logger should be some kind of *listened*, for example with > > > the > > > > > > folowing API: > > > > > > > > > > > > void addListener(String pattern, CountDownLatch latch); > > > > > > void addListener(IgniteInClosure<String> lsnr); > > > > > > > > > > > > This approach reduces memory load in comparison with > > > > *GridStringLogger*. > > > > > > > > > > > > Just for example these should demonstrate my idea, *listened logger* > > > - > > > > > > [1], *listener* - [2]: > > > > > > > > > > > > [1] https://github.com/apache/ignite/blob/master/modules/ > > > > > > > > > > > > > compatibility/src/test/java/org/apache/ignite/compatibility/testframework/ > > > > > > junits/logger/ListenedGridTestLog4jLogger.java > > > > > > [2] https://github.com/apache/ignite/blob/master/modules/ > > > > > > > > > > > > > compatibility/src/test/java/org/apache/ignite/compatibility/testframework/ > > > > > > junits/IgniteCompatibilityAbstractTest.java#L304 > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > Best regards, > > > > > Andrey Kuznetsov. > > > > > > > > > > > > > > > > -- > > > > Best wishes, > > > > Amelchev Nikita > > > > > > > > > > > > > -- > > > Best regards, > > > Andrey Kuznetsov. > > > -- Best wishes, Amelchev Nikita