Qpid
  1. Qpid
  2. QPID-3052

Java test profiles do not effectively test all AMQP protocol versions

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 0.9, 0.10, 0.11, 0.12
    • Fix Version/s: 0.15
    • Component/s: Java Tests
    • Labels:
      None

      Description

      The Java test profiles assume that, particularly default one for InVm transports, the 0-10 protocol will fail, causing renegotiation. If 0-10 InVm support is added then the default protocol will use this. It seems to make more sense to specify exactly the version the client and the broker should announce, and force renegotiation explicitly by disabling various protocol versions on the command line when starting an external Java broker. Note that this is not possible to specify for the InVm profiles anyway. Also, the only protocol that is ever tested will be the highest supported by both broker and client, therefore this is AMQP 0-9-1. In order for the tests not to do surprising things when new protocol versions are added, I think that setting versions explicitly is the best idea. I woulsd also like to add an explicit 0-8 test profile for both InVM and external Java brokers, in order to exercise and get coverage on this code.

      In future, I recommend that some form of combinatorial profile system be investigated for the test subsystem, allowing the required protocol, broker type and so on to be specified separately.

        Activity

        Hide
        Robbie Gemmell added a comment -

        I have added test profiles to cover the 0-9 and 0-9 protocols.

        We removed InVM transport support so that doesnt need to be considered anymore, the same broker startup and transport code is now used whether the broker is in the same VM as the client or not.

        The test profiles still let the client negotiate its protocol with the broker by opening with a 0-10 request rather than force it. There is however now a system test (SupportedProtovolVersionsTest) that includes tests that instruct the client to open its connection with specific version requests, so that case is now covered also.

        Show
        Robbie Gemmell added a comment - I have added test profiles to cover the 0-9 and 0-9 protocols. We removed InVM transport support so that doesnt need to be considered anymore, the same broker startup and transport code is now used whether the broker is in the same VM as the client or not. The test profiles still let the client negotiate its protocol with the broker by opening with a 0-10 request rather than force it. There is however now a system test (SupportedProtovolVersionsTest) that includes tests that instruct the client to open its connection with specific version requests, so that case is now covered also.

          People

          • Assignee:
            Robbie Gemmell
            Reporter:
            Andrew Kennedy
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development