Uploaded image for project: 'C++ Driver'
  1. C++ Driver
  2. CXX-2087

Implement All Relevant Spec Tests

    • Type: Icon: Epic Epic
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • To Do
    • Implement All Spec Tests

      Motivation

      The C++ driver has historically chosen not to implement all spec tests, and instead rely on the C driver's existing testing. However, there is value in implementing all spec tests, even if there is a bit of redundancy.

      • It's not always clear which tests are implemented and why. In general the C++ driver relies on the C driver for much of the behavior, but there are exceptions (e.g. GridFS). By implementing all test runners, there'd be no question about which specification tests to run.
      • Swift has caught bugs / unexpected behavior in libmongoc when implementing spec tests (e.g. CDRIVER-3130CDRIVER-3147)
      • If the C++ driver does in the future remove the dependency of libbson/libmongoc, the testing will already be in place to enable such a transition.

      Scope

      Implement test runners for the following spec tests (specifications directory/file in parenthesis):

      • Auth tests (source/auth/tests)
      • BSON corpus tests (source/bson-corpus/tests)
      • Causal consistency prose tests (causal-consistency/causal-consistency.rst)
      • Connection string (source/connection-string)
      • Connections survive step down (source/connections-survive-step-down/tests)
      • Initial DNS seedlist discovery (source/initial-dns-seedlist-discovery/tests)
      • Max staleness (source/max-staleness/tests)
      • OCSP (source/ocsp-support/tests)
      • Retryable writes (source/retryable-writes/tests)
      • Server discovery and monitoring (source/server-discovery-and-monitoring/tests)
      • Server selection (source/server-selection/tests)
      • Sessions (source/sessions/tests)
      • URI options (source/uri-options/tests)
         
        It may be best to wait until the Unified Test Format project is complete, as that may simplify many of the existing test formats.

            Assignee:
            Unassigned Unassigned
            Reporter:
            alexander.golin@mongodb.com Alexander Golin (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: