anchor.diff:  }
   
   
  +Future test_incr_cas(){
  +   RedisConnection conn = new RedisConnection();
  +   String key = "keycaswewe";
  +   return conn.connect("localhost", 6379)
  +   .then((Command cmd){
  +     cmd.send_object(["SETNX",key,"1"]);
  +     return Future.doWhile((){
  +       cmd.send_object(["WATCH",key]);
  +       return cmd.send_object(["GET",key]).then((String val){
  +         int i = int.parse(val);
  +         ++i;
  +         return cmd.multi()
  +         .then((Transaction trans){
  +           String val = i.toString();
  +           trans.send_object(["SET",key,i.toString()]);
  +           return trans.exec().then((var res){
  +             if(res == "OK"){
  +                return false; //terminate doWhile
  +             }
  +             return true; //try again
  +           });
  +         });
  +       });
  +     });
  +   });
  +}
  +
  +
  +Future test_incr_cas_multiple(int n){
  +  Queue<Future> q =new Queue();
  +  for(int i=0;i<n;++i){
  +    q.add(test_incr_cas());
  +  }
  +  return Future.wait(q);
  +}
  +
   
   
   Future testing_helper(Future f,String name){
  
positive.code:   q.add(testing_helper(test_transactions(10000), "transation"));
    q.add(testing_helper(test_pubsub(),"pubsub"));
    q.add(testing_helper(test_commands_one_by_one(),"one by one"));
    q.add(testing_helper(test_transactions_cas_phail(),"transation CAS"));
    
    Future.wait(q).then((_){print("done");})
    .then((_){
  
negative.code:   return completer.future;
  }
  
  
  
  Future test_transactions(int n){
    RedisConnection conn = new RedisConnection();
  