示例#1
0
        def run(self):
            print('waiting for second process')
            self.sock, addr = self.__server_socket.accept()
            print('accepted second process')

            from tests_python.debugger_unittest import ReaderThread
            self.reader_thread = ReaderThread(self.sock)
            self.reader_thread.start()

            self._sequence = -1
            # initial command is always the version
            self.write_version()
            self.log.append('start_socket')
            self.write_make_initial_run()
            time.sleep(1)

            seq = self.write_list_threads()
            msg = self.wait_for_list_threads(seq)
            assert msg.thread['name'] == 'MainThread'
            assert msg.thread['id'] == 'console_main'

            self.write_get_frame('console_main', '1')
            self.wait_for_vars([
                [
                    '<var name="a" type="int" qualifier="%s" value="int: 10"' %
                    (builtin_qualifier, ),
                    '<var name="a" type="int"  value="int',  # jython
                ],
            ])

            self.finished_ok = True
示例#2
0
def test_fixture_reader_thread1(_dummy_socket):
    sock = _dummy_socket

    reader_thread = ReaderThread(sock)
    reader_thread.start()

    json_part = json.dumps({'key': 'val'})
    json_part = json_part.replace(':', ':\n')
    msg = json_part

    msg = ('Content-Length: %s\r\n\r\n%s' % (len(msg), msg)).encode('utf-8')
    # Check that receiving 2 messages at a time we're able to properly deal
    # with each one.
    sock.put(msg + msg)

    assert reader_thread.get_next_message('check 1') == json_part
    assert reader_thread.get_next_message('check 2') == json_part
示例#3
0
    class _DebuggerWriterThread(AbstractWriterThread):

        FORCE_KILL_PROCESS_WHEN_FINISHED_OK = True

        def __init__(self):
            AbstractWriterThread.__init__(self)
            socket_name = get_socket_name(close=True)
            server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
            server_socket.bind(socket_name)
            server_socket.listen(1)
            self.port = socket_name[1]
            self.__server_socket = server_socket

        def run(self):
            print('waiting for second process')
            self.sock, addr = self.__server_socket.accept()
            print('accepted second process')

            from tests_python.debugger_unittest import ReaderThread
            self.reader_thread = ReaderThread(self.sock)
            self.reader_thread.start()

            self._sequence = -1
            # initial command is always the version
            self.write_version()
            self.log.append('start_socket')
            self.write_make_initial_run()
            time.sleep(1)

            seq = self.write_list_threads()
            msg = self.wait_for_list_threads(seq)
            assert msg.thread['name'] == 'MainThread'
            assert msg.thread['id'] == 'console_main'

            self.write_get_frame('console_main', '1')
            self.wait_for_vars([
                [
                    '<var name="a" type="int" qualifier="%s" value="int: 10"' %
                    (builtin_qualifier, ),
                    '<var name="a" type="int"  value="int',  # jython
                ],
            ])

            self.finished_ok = True
示例#4
0
def test_fixture_reader_thread3(_dummy_socket):
    sock = _DummySocket()

    reader_thread = ReaderThread(sock)
    reader_thread.start()

    msg = 'aaaaaaabbbbbbbccccccc'
    http = ('Content-Length: %s\r\n\r\n%s' % (len(msg), msg))
    http *= 2
    initial = http
    for i in range(1, len(http)):
        while http:
            sock.put(http[:i])
            http = http[i:]

        assert reader_thread.get_next_message('check 1: %s' % i) == msg
        assert reader_thread.get_next_message('check 2: %s' % i) == msg
        http = initial
示例#5
0
def test_fixture_reader_thread2(_dummy_socket):
    sock = _DummySocket()

    reader_thread = ReaderThread(sock)
    reader_thread.start()

    json_part = json.dumps({'key': 'val'})
    json_part = json_part.replace(':', ':\n')
    msg = json_part

    http = ('Content-Length: %s\r\n\r\n%s' % (len(msg), msg))
    sock.put('msg1\nmsg2\nmsg3\n' + http + http)

    assert reader_thread.get_next_message('check 1') == 'msg1'
    assert reader_thread.get_next_message('check 2') == 'msg2'
    assert reader_thread.get_next_message('check 3') == 'msg3'
    assert reader_thread.get_next_message('check 4') == json_part
    assert reader_thread.get_next_message('check 5') == json_part