[infinispan-dev] eventually...

Mircea Markus mircea.markus at jboss.com
Thu Sep 2 06:55:34 EDT 2010


On 2 Sep 2010, at 11:53, Manik Surtani wrote:

> Is there a max wait period?  I wouldn't want conditions blocking indefinitely... 
sure, by default AbstractInfinispanTest.eventually(Condition ec) waits 10 secs
there's also:
AbstractInfinispanTest.eventually(Condition ec, long timeoutMillis)


> 
> On 2 Sep 2010, at 11:31, Mircea Markus wrote:
> 
>> Hi,
>> 
>> While testing, especially on async behaviour, one needs to wait until a certain state is reached.
>> E.g. let's say we want to test _async_ repl works fine,  one way to do it is:
>> 
>> 1. first approach
>> cache1.put(k,v);
>> 
>> //now expect this to be replicated at some point in future on cache2
>> for (int i=0; i < 10; i++) { 
>> 	if (v.equals(cache2.get(k)) break;
>> 	Thread.sleep(1000);
>> }
>> assert v.equals(cache2.get(k));
>> 
>> the code bellow waits 10 seconds for the replication to occur, if not fails the test.
>> Problem with this code is that it is rather hard to read, and not reusable. 
>> This code can be found in many paces in our tests.
>> 
>> 2. second approach.
>> I've added AbstractInfinispanTest.eventually(Condition ec) method that does the same.
>> Code bellow now looks like:
>> 
>>        eventually(new Condition() {
>>           public boolean isSatisfied() throws Exception {
>>              return v.equals(cache2.get(k));
>>           }
>>        });
>> While the amount of code itself hasn't change significantly, the second approach is more readable and much more quicker to write as it is generated by the IDE.
>> 
>> I've added this in 4.2, let me know your thoughts around it.
>> 
>> Cheers,
>> Mircea
>> 
>> 
>> 
>> 
>> 
>> 
>> _______________________________________________
>> infinispan-dev mailing list
>> infinispan-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/infinispan-dev
> 
> --
> Manik Surtani
> manik at jboss.org
> Lead, Infinispan
> Lead, JBoss Cache
> http://www.infinispan.org
> http://www.jbosscache.org
> 
> 
> 
> 
> 
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev




More information about the infinispan-dev mailing list