Пример #1
0
 def test_fact_internal(self):
     fname = os.path.join(self._td, 'd.sock')
     ss = sample_server_cli
     self.assert_server_alive()
     with dispatch.open('', fname) as conn:
         dispatch.msg_write_type(conn, ss.COMP_FACT)
         dispatch.msg_write_int32(conn, 5)
         t = dispatch.msg_read_type(conn)
         self.assertEqual(t, ss.T_RESULT)
         v = dispatch.msg_read_int32(conn)
         self.assertEqual(v, 120)
     with dispatch.open('', fname) as conn:
         dispatch.msg_write_type(conn, ss.COMP_FACT)
         dispatch.msg_write_int32(conn, 10)
         t = dispatch.msg_read_type(conn)
         self.assertEqual(t, ss.T_RESULT)
         v = dispatch.msg_read_int32(conn)
         self.assertEqual(v, 3628800)
     with dispatch.open('', fname) as conn:
         # the result will be too big
         dispatch.msg_write_type(conn, ss.COMP_FACT)
         dispatch.msg_write_int32(conn, 15)
         t = dispatch.msg_read_type(conn)
         self.assertEqual(t, ss.T_ERROR)
         v = dispatch.msg_read_uint16(conn)
         self.assertEqual(v, 1)
     with dispatch.open('', fname) as conn:
         # negative inputs are invalid
         dispatch.msg_write_type(conn, ss.COMP_FACT)
         dispatch.msg_write_int32(conn, -7)
         t = dispatch.msg_read_type(conn)
         self.assertEqual(t, ss.T_ERROR)
         v = dispatch.msg_read_uint16(conn)
         self.assertEqual(v, 1)
Пример #2
0
 def test_round_trip_reverse(self):
     fname = os.path.join(self._td, 'd.sock')
     ss = sample_server_cli
     self.assert_server_alive()
     with dispatch.open('', fname) as conn:
         dispatch.msg_write_type(conn, ss.ROUND_TRIP)
         dispatch.msg_write_type(conn, 2500)
         dispatch.msg_write_uint64(conn, 18446743967598447505)
         dispatch.msg_write_int64(conn, -9223372036854775807)
         dispatch.msg_write_uint32(conn, 2147477648)
         dispatch.msg_write_int32(conn, -6000)
         dispatch.msg_write_uint16(conn, 512)
         dispatch.msg_write_uint8(conn, 255)
         dispatch.msg_write_string(conn, "Hello Earth!")
         t = dispatch.msg_read_type(conn)
         self.assertEqual(t, ss.T_RESULT)
         values = []
         values.append(dispatch.msg_read_string(conn))
         values.append(dispatch.msg_read_uint8(conn))
         values.append(dispatch.msg_read_uint16(conn))
         values.append(dispatch.msg_read_int32(conn))
         values.append(dispatch.msg_read_uint32(conn))
         values.append(dispatch.msg_read_int64(conn))
         values.append(dispatch.msg_read_uint64(conn))
         values.append(dispatch.msg_read_type(conn))
         self.assertEqual(values, [
             "Hello Earth!", 255, 512, -6000, 2147477648,
             -9223372036854775807, 18446743967598447505, 2500
         ])
Пример #3
0
def round_trip_reverse(dtype, conn):
    try:
        values = []
        values.append(dispatch.msg_read_type(conn))
        values.append(dispatch.msg_read_uint64(conn))
        values.append(dispatch.msg_read_int64(conn))
        values.append(dispatch.msg_read_uint32(conn))
        values.append(dispatch.msg_read_int32(conn))
        values.append(dispatch.msg_read_uint16(conn))
        values.append(dispatch.msg_read_uint8(conn))
        values.append(dispatch.msg_read_string(conn))
        print >> sys.stderr, 'values=%r' % values
        dispatch.msg_write_type(conn, T_RESULT)
        # now the data:
        dispatch.msg_write_string(conn, values.pop())
        dispatch.msg_write_uint8(conn, values.pop())
        dispatch.msg_write_uint16(conn, values.pop())
        dispatch.msg_write_int32(conn, values.pop())
        dispatch.msg_write_uint32(conn, values.pop())
        dispatch.msg_write_int64(conn, values.pop())
        dispatch.msg_write_uint64(conn, values.pop())
        dispatch.msg_write_type(conn, values.pop())
    except Exception:
        dispatch.msg_write_type(conn, T_ERROR)
        dispatch.msg_write_uint16(conn, 1)
Пример #4
0
 def test_hello(self):
     self.assert_server_alive()
     fname = os.path.join(self._td, 'd.sock')
     with dispatch.open('', fname) as conn:
         dispatch.msg_write_type(conn, echo_server.ECHO_HELLO)
         s = dispatch.msg_read_string(conn)
         e = dispatch.msg_read_uint16(conn)
     self.assertEqual(s, "Hello, World")
     self.assertEqual(e, 0)
Пример #5
0
def rq_fact(sockfn, value):
    with dispatch.open('', sockfn) as conn:
        dispatch.msg_write_type(conn, COMP_FACT)
        dispatch.msg_write_int32(conn, value)
        t = dispatch.msg_read_type(conn)
        if t == T_ERROR:
            e = dispatch.msg_read_uint16(conn)
            sys.exit(e)
        v = dispatch.msg_read_int32(conn)
    print v
Пример #6
0
    def test_foobar(self):
        self.assert_server_alive()
        fname = os.path.join(self._td, 'd.sock')
        conn = dispatch.open('', fname)
        with conn:
            dispatch.msg_write_type(conn, echo_server.ECHO_STRING)
            dispatch.msg_write_string(conn, "foobar")

            s = dispatch.msg_read_string(conn)
            # mimic the common error number style
            e = dispatch.msg_read_uint16(conn)
            self.assertEqual(s, 'foobar')
            self.assertEqual(e, 0)
Пример #7
0
 def test_multiple_rounds(self):
     self.assert_server_alive()
     fname = os.path.join(self._td, 'd.sock')
     for ii in range(0, 16):
         self.assert_server_alive()
         with dispatch.open('', fname) as conn:
             tostr = chr(0x41 + ii) * (ii + 1)
             dispatch.msg_write_type(conn, echo_server.ECHO_STRING)
             dispatch.msg_write_string(conn, tostr)
             fromstr = dispatch.msg_read_string(conn)
             err = dispatch.msg_read_uint16(conn)
         self.assertEqual(err, 0)
         self.assertEqual(tostr, fromstr)