コード例 #1
0
	def main(self, argv):
		low_bit = random(1)
		high_bit = random(1)
		
		result = (high_bit << 1) | low_bit
		
		print result	
		return 0
コード例 #2
0
	def main(self, argv):
		low_bit = random(1)
		high_bit = random(1)
		
		result = (high_bit << 1) | low_bit
		
		assert result != 0 #wrong assumption 
		
		print result	
		return 0
コード例 #3
0
	def reply(self):
		#cmd = self.command.strip()
		cmd = self.command # no stripping in rpython
		result = "500 UNDEF ERROR"
		
		try:
			if self.isCmd(cmd, "USER"):
				result = self.commandUser()
			elif self.isCmd(cmd, "GREETING"):
				result = self.greeting()
			elif self.isCmd(cmd, "PASV"):
				result = self.commandPasv()
			elif self.isCmd(cmd, "LIST"):
				result = self.commandList()
			elif self.isCmd(cmd, "RETR"):
				result = self.commandRetr()
			elif self.isCmd(cmd, "CWD"):
				result = self.commandCwd()
			elif self.isCmd(cmd, "DELE"):
				result = self.commandDele()
			elif self.isCmd(cmd, "QUIT"):
				result = self.commandQuit()
		except StateException:
			print "SERVER STATE RESET"
			if (self.state == self.S_STATE_WAITING_DATA_CONNECTION
				or self.state == self.S_STATE_TRANSFERING):
				self.setState(self.S_STATE_LOGGED)
			elif self.state == self.S_STATE_WAITING_PASSWORD:
				self.setState(self.S_STATE_CONNECTED)
		
		if self.config.SERVER_LEVEL == 1:
			if random(1) == 0:
				return "500 FAIL\r\n"
		elif self.config.SERVER_LEVEL == 2:
			r = random(5)
			#print "RRRRR ", r
			if r == 0:
				pass
			elif r == 1:
				return "100 FAKE\r\n"
			elif r == 2:
				return "200 FAKE\r\n"
			elif r == 3:
				return "300 FAKE\r\n"
			elif r == 4:
				return "400 FAKE\r\n"
			elif r == 5:
				return "500 FAKE\r\n"
		
		return result + "\r\n"
コード例 #4
0
def mild_randomization(s):
	r = random(2)
	if r == 0:
		return None
	elif r == 1 and len(s) > 0:
		return s[0]
	else:
		return s
コード例 #5
0
	def sendMessage(self, message):
		if self.config.WRITE_LEVEL == 1:
			if random(1) == 0:
				print "not sent*"
				return False
	
		print "sent* ", message
		self.server.setCommand(message)
		return True
コード例 #6
0
def full_randomization(s):
	l = len(s)
	stop = random(l+1)
	assert stop >= 0 # annotation help
	
	if stop == l+1:
		return None
	else:
		return s[0:stop]
コード例 #7
0
	def connect(self, host, port):
		if self.config.CONNECT_LEVEL == 1:
			if random(1) == 0:
				return False
		
		if self.data:
			self.server.connectToData()
		else:
			self.server.connectToCommand()
		
		return True
コード例 #8
0
def main():
    """
		Tests various sequences of commands.
	"""
    server = Server()

    commandNet = TestNetwork(server, False)
    dataNet = TestNetwork(server, True)
    host = "foo"
    client = Client(commandNet, dataNet)
    suc = client.connect(host, 21)
    print "C:Test connected:", suc
    if not suc:
        return

    suc = client.login("anonymous", "*****@*****.**")
    if not suc:
        return

    for i in range(3):
        cmd = random(3)
        if cmd == 0:
            f = client.retrieveFile("xx")
            if f is None:
                pass
            else:
                print f
        elif cmd == 1:
            stream = client.retrieveFileStream("xx")
            buf = ""
            if stream is not None:
                c = stream.read()
                while c != -1:
                    buf += chr(c)
                    c = stream.read()

                stream.close()
                print buf
        elif cmd == 2:
            suc = client.changeWorkingDirectory("b_dir")
            if not suc:
                pass
        elif cmd == 3:
            files = client.listFiles()
            if files is None:
                pass

    suc = client.logout()
    if not suc:
        pass

    print "C:TestDone (random 2)."