def main(self, argv): low_bit = random(1) high_bit = random(1) result = (high_bit << 1) | low_bit print result return 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
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"
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
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
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]
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
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)."