示例#1
0
class TestFlagCollector(unittest.TestCase):

	def setUp(self):
		self.conf = Config()
		self.conf.setFlagDuration(60)
		self.conf.addTeamInfo("Team1","127.0.0.1","127.0.0.0/24")
		self.conf.addTeamInfo("Team2","127.0.1.1","127.0.1.0/24")

	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 testThreadSafety(self):
		fc = FlagCollector()
		p1 = FlagCollectorPopulator(fc,10000,10)
		p2 = FlagCollectorPopulator(fc,10000,20)
		p3 = FlagCollectorPopulator(fc,10000,30)
		p4 = FlagCollectorPopulator(fc,10000,30)
		p5 = FlagCollectorPopulator(fc,10000,30)
		
		p1.start()
		p2.start()
		p3.start()
		p4.start()
		p5.start()

		total = 0
		for i in xrange(1000):
			total += len(fc.collect())
			time.sleep(1.0/1000.0)

		p1.join()
		p2.join()
		p3.join()
		p4.join()
		p5.join()

		total += len(fc.collect())		
		self.assertEquals(total,50000)
示例#2
0
class TestFlagCollector(unittest.TestCase):
    def setUp(self):
        self.conf = Config()
        self.conf.setFlagDuration(60)
        self.conf.addTeamInfo("Team1", "127.0.0.1", "127.0.0.0/24")
        self.conf.addTeamInfo("Team2", "127.0.1.1", "127.0.1.0/24")

    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 testThreadSafety(self):
        fc = FlagCollector()
        p1 = FlagCollectorPopulator(fc, 10000, 10)
        p2 = FlagCollectorPopulator(fc, 10000, 20)
        p3 = FlagCollectorPopulator(fc, 10000, 30)
        p4 = FlagCollectorPopulator(fc, 10000, 30)
        p5 = FlagCollectorPopulator(fc, 10000, 30)

        p1.start()
        p2.start()
        p3.start()
        p4.start()
        p5.start()

        total = 0
        for i in xrange(1000):
            total += len(fc.collect())
            time.sleep(1.0 / 1000.0)

        p1.join()
        p2.join()
        p3.join()
        p4.join()
        p5.join()

        total += len(fc.collect())
        self.assertEquals(total, 50000)
示例#3
0
class TestFlagValidator(unittest.TestCase):

	def setUp(self):
		self.conf = Config()
		self.conf.setFlagDuration(60)
		self.conf.addTeamInfo("Team1","127.0.0.1","127.0.0.0/24")
		self.conf.addTeamInfo("Team2","127.0.1.1","127.0.1.0/24")

	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)

	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)

	def testEnsureUnique(self):
		fv = FlagValidator(self.conf.numTeams(),self.conf.getFlagDuration())
		flag = Flag(0,0,0,time.time())
		self.assert_(fv.validate(1,flag) == FlagValidator.VALID)
		self.assert_(fv.validate(1,flag) == FlagValidator.REPEAT)

	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)

	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)
示例#4
0
class TestFlagValidator(unittest.TestCase):
    def setUp(self):
        self.conf = Config()
        self.conf.setFlagDuration(60)
        self.conf.addTeamInfo("Team1", "127.0.0.1", "127.0.0.0/24")
        self.conf.addTeamInfo("Team2", "127.0.1.1", "127.0.1.0/24")

    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)

    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)

    def testEnsureUnique(self):
        fv = FlagValidator(self.conf.numTeams(), self.conf.getFlagDuration())
        flag = Flag(0, 0, 0, time.time())
        self.assert_(fv.validate(1, flag) == FlagValidator.VALID)
        self.assert_(fv.validate(1, flag) == FlagValidator.REPEAT)

    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)

    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)