Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-1765

C++ unit tests won't run on Windows

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.5
    • 0.5
    • None
    • None
    • Windows, Visual Studio 2008

    Description

      The C++ unit_tests test suite won't run correctly on Windows. The main issue is that the SocketProxy class, used as a relay between client and broker that can be programmed to drop data or close a connection at an inopportune time, uses the Poller class in a way that's incompatible with the Windows IocpPoller.

      The Poller class is used to react to events on the sockets being used, but the SocketProxy class then expects to perform the needed send/recv operations directly on the Socket classes. However, the Windows Poller class reacts to I/O completions, not possibilities, so it's not compatible with the approach taken by SocketProxy.

      I tried replacing this with AsynchIO use... too messy and leaky.

      I have an approach working that uses select() instead of the Poller. It's portable, even if a bit trickier to use correctly than Poller. Patch forthcoming.

      Attachments

        1. SocketProxy.h.diff
          7 kB
          Stephen D. Huston

        Activity

          People

            shuston Stephen D. Huston
            shuston Stephen D. Huston
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: