예제 #1
0
 def test_rd_suffix_mixed(self):
     self.server.send(b'abcdefghijklmnopqrstuvwxyz')
     self.assertEqual(rd(b'c', b'e'), b'abc')
     self.assertEqual(rd(b'i', b'e'), b'de')
     self.assertEqual(rd(b'jq', b'gh'), b'fgh')
     self.assertEqual(rd(5, b'k'), b'ijk')
     self.assertEqual(rd(5, b'u'), b'lmnop')
     self.assertEqual(rd(3, 1), b'q')
     self.assertEqual(rd(99, re.compile(b's')), b'rs')
     self.assertEqual(rd(1, b'tu', re.compile(b'uv')), b't')
     self.assertEqual(rd(3, b'v', re.compile(b'y')), b'uv')
     self.assertEqual(rd(5, b'z', re.compile(b'x')), b'wx')
예제 #2
0
 def test_rd_suffix_mixed(self):
     self.server.send(b'abcdefghijklmnopqrstuvwxyz')
     self.assertEqual(rd(b'c', b'e'), b'abc')
     self.assertEqual(rd(b'i', b'e'), b'de')
     self.assertEqual(rd(b'jq', b'gh'), b'fgh')
     self.assertEqual(rd(5, b'k'), b'ijk')
     self.assertEqual(rd(5, b'u'), b'lmnop')
     self.assertEqual(rd(3, 1), b'q')
     self.assertEqual(rd(99, re.compile(b's')), b'rs')
     self.assertEqual(rd(1, b'tu', re.compile(b'uv')), b't')
     self.assertEqual(rd(3, b'v', re.compile(b'y')), b'uv')
     self.assertEqual(rd(5, b'z', re.compile(b'x')), b'wx')
예제 #3
0
    def test_rd_output_echo_noescape(self):
        self.sock.escape = False

        instr = b'\x00 \t\nabc123\x80\xff'
        self.server.send(instr)
        res = rd(len(instr))
        output = self.stdout.read()

        self.assertEqual(res, instr)
        self.assertEqual(output, _bytes_to_text(instr))
예제 #4
0
    def test_rd_output_echo_noescape(self):
        self.sock.escape = False

        instr = b'\x00 \t\nabc123\x80\xff'
        self.server.send(instr)
        res = rd(len(instr))
        output = self.stdout.read()

        self.assertEqual(res, instr)
        self.assertEqual(output, _bytes_to_text(instr))
예제 #5
0
 def test_rd_oserror(self):
     self.sock.sock.setblocking(0)
     self.server.send(b'test')
     with self.assertRaises(rxpwn.PartialReadError) as ecm:
         rd(b'\n')
     self.assertEqual(ecm.exception.data, b'test')
예제 #6
0
 def test_rd_partial(self):
     self.server.send(b'test')
     self.server.shutdown(socket.SHUT_WR)
     with self.assertRaises(rxpwn.PartialReadError) as ecm:
         rd(b'\n')
     self.assertEqual(ecm.exception.data, b'test')
예제 #7
0
 def test_rd_suffix_re(self):
     self.server.send(b'abcdefghi')
     self.assertEqual(rd(re.compile(b'[cd]')), b'abc')
     self.assertEqual(rd(re.compile(b'.')), b'd')
     self.assertEqual(rd(re.compile(b'i')), b'efghi')
예제 #8
0
 def test_rd_suffix_bytes(self):
     self.server.send(b'abcdefghi')
     self.assertEqual(rd(b'c'), b'abc')
     self.assertEqual(rd(b'ef'), b'def')
     self.assertEqual(rd(bytearray(b'i')), b'ghi')
예제 #9
0
 def test_rd_suffix_int(self):
     self.server.send(b'abcdefghi')
     self.assertEqual(rd(3), b'abc')
     self.assertEqual(rd(4), b'defg')
예제 #10
0
 def test_rd_oserror(self):
     self.sock.sock.setblocking(0)
     self.server.send(b'test')
     with self.assertRaises(rxpwn.PartialReadError) as ecm:
         rd(b'\n')
     self.assertEqual(ecm.exception.data, b'test')
예제 #11
0
 def test_rd_partial(self):
     self.server.send(b'test')
     self.server.shutdown(socket.SHUT_WR)
     with self.assertRaises(rxpwn.PartialReadError) as ecm:
         rd(b'\n')
     self.assertEqual(ecm.exception.data, b'test')
예제 #12
0
 def test_rd_suffix_re(self):
     self.server.send(b'abcdefghi')
     self.assertEqual(rd(re.compile(b'[cd]')), b'abc')
     self.assertEqual(rd(re.compile(b'.')), b'd')
     self.assertEqual(rd(re.compile(b'i')), b'efghi')
예제 #13
0
 def test_rd_suffix_bytes(self):
     self.server.send(b'abcdefghi')
     self.assertEqual(rd(b'c'), b'abc')
     self.assertEqual(rd(b'ef'), b'def')
     self.assertEqual(rd(bytearray(b'i')), b'ghi')
예제 #14
0
 def test_rd_suffix_int(self):
     self.server.send(b'abcdefghi')
     self.assertEqual(rd(3), b'abc')
     self.assertEqual(rd(4), b'defg')