// run test func runTimerTestReceiver(mgr *manager.IndexManager, ch chan *common.TsVbuuid, donech chan bool) { logging.Infof("Run Timer Test Receiver") defer close(donech) // wait for the sync message to arrive ticker := time.NewTicker(time.Duration(60) * time.Second) for { select { case ts := <-ch: if ts.Seqnos[10] == 406 { // wait to avoid race condition -- this is timing dependent. time.Sleep(time.Duration(2000) * time.Millisecond) seqno, ok := mgr.GetStabilityTimestampForVb(common.MAINT_STREAM, "Default", uint16(10)) if !ok || seqno != ts.Seqnos[10] { util.TT.Fatal("runTimerTestReceiver(): timestamp seqno does not match with repo. %d != %d", ts.Seqnos[10], seqno) } else { logging.Infof("****** runTimerTestReceiver() receive correct stability timestamp") return } } case <-ticker.C: logging.Infof("****** runTimerTestReceiver() : timeout") util.TT.Fatal("runTimerTestReceiver(): Timeout waiting to receive timestamp to arrive") } } logging.Infof("runTimerTestReceiver() done") }