Beispiel #1
0
    def testLargeRecord(self):
        fv = FlagValidator(self.conf.numTeams(), self.conf.getFlagDuration())

        for i in xrange(1000):
            flag = Flag(0, i, 0, time.time())
            self.assert_(fv.validate(1, flag) == FlagValidator.VALID)
        flag = Flag(0, 500, 0, time.time())
        self.assert_(fv.validate(1, flag) == FlagValidator.REPEAT)
Beispiel #2
0
    def testBasicUsage(self):
        fc = FlagCollector()
        f1 = Flag(0, 0, 0, time.time())
        f2 = Flag(0, 1, 0, time.time())
        fc.enque(f1)
        fc.enque(f2)

        flags = fc.collect()
        self.assert_(len(flags) == 2)

        flags = fc.collect()
        self.assert_(len(flags) == 0)
    def execute(self, round):

        heap = []

        round_length = random.randint(self.servicebot_conf.getRoundLengthMin(),
                                      self.servicebot_conf.getRoundLengthMax())

        for team, service, task in self.tasks:
            wait_max = round_length - service.timeout
            wait = random.randint(0, wait_max)
            flag = Flag(team.id, service.id, round, time.time() + float(wait))
            heapq.heappush(heap, (wait, task, self.flag_manager.toTxt(flag)))

        total = 0
        while (len(heap) > 0):
            wait, task, flag = heapq.heappop(heap)
            if (total == wait):
                task.launch(flag)
            else:
                time.sleep(wait - total)
                total = wait
                task.launch(flag)

        time.sleep(round_length - total)

        for team, service, task in self.tasks:
            task.finish()
            task.processOutput()

        return self.tasks
Beispiel #4
0
    def run(self):
        foo = time.time()
        random.jumpahead(self.N)
        time.sleep(random.random())

        for i in xrange(self.count):
            flag = Flag(0, i, 0, foo)
            self.fc.enque(flag)
Beispiel #5
0
	def build(self,teamId,serviceId,round):
		team = self.conf.getTeamInfoById(teamId)
		service = self.servicebot_conf.getServiceInfoById(serviceId)
		flag = Flag(teamId,serviceId,round,time.time())

		task = ServiceTask(
				service.script,
				service.timeout,
				self.flag_manager.toTxt(flag),
				team.host,
				self.storage[teamId][serviceId],
				self.service_loggers[service.name])

		return task
Beispiel #6
0
 def testFlagToTxt(self):
     fm = FlagManager(self.key, self.iv, "Foo")
     flag = Flag(0, 0, 0, 1234567890.0)
     self.assert_(fm.toTxt(flag) == self.flag_txt)
Beispiel #7
0
 def testEnsureUniqueBug(self):
     fv = FlagValidator(self.conf.numTeams(), self.conf.getFlagDuration())
     flag = Flag(0, 0, 0, time.time())
     self.assert_(fv.validate(1, flag) == FlagValidator.VALID)
     for i in xrange(100):
         self.assert_(fv.validate(1, flag) == FlagValidator.REPEAT)
Beispiel #8
0
 def testEnsureDuration(self):
     fv = FlagValidator(self.conf.numTeams(), self.conf.getFlagDuration())
     flagExpired = Flag(0, 0, 0, time.time() - 61)
     flagOk = Flag(0, 0, 0, time.time() - 59)
     self.assert_(fv.validate(1, flagOk) == FlagValidator.VALID)
     self.assert_(fv.validate(1, flagExpired) == FlagValidator.EXPIRED)
Beispiel #9
0
 def testEnsureDifferentTeams(self):
     fv = FlagValidator(self.conf.numTeams(), self.conf.getFlagDuration())
     flag = Flag(0, 0, 0, time.time())
     self.assert_(fv.validate(0, flag) == FlagValidator.SAME_TEAM)
     self.assert_(fv.validate(1, flag) == FlagValidator.VALID)