[CXX-2036] Improve spec test runners Created: 05/Jun/20  Updated: 08/Feb/23

Status: Backlog
Project: C++ Driver
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major - P3
Reporter: Samantha Ritter (Inactive) Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on CXX-1173 Support users adding mongocxx as a CM... Closed
depends on CXX-2106 Add Boost.Filesystem as a CMake submo... Closed
Duplicate
is duplicated by CXX-1917 auto-detect spec test files instead o... Closed
Related
related to CXX-1916 Only sync json files for spec tests Closed
Epic Link: CXX Driver Testing (Evergreen)

 Description   

The CXX driver's spec test runners are difficult to use and maintain.  Some of the problems with the test runner include:

  • each spec test suite has a file that lists all the spec tests in that suite, and these lists must be updated manually each time we sync in new spec tests.  If we fail to update these files, spec tests will be skipped silently.
  • the spec tests rely on specific environment variables being set, these variables point to the directories holding the spec tests, which are always the same.


 Comments   
Comment by Clyde Bazile III (Inactive) [ 31/Aug/20 ]

Per the comments in CDRIVER-3784, references to CMAKE_SOURCE_DIR will be eliminated in CXX-1173. Since my last PR depended on that variable I'm marking this as blocked until it's resolved.

Comment by Andrew Morrow (Inactive) [ 11/Aug/20 ]

MNMLSTC was chosen as an option because one of the major complaints about the old (aka legacy) C++ driver was that it had a hard dependency on boost. Many users struggled to properly link the driver with boost, and then the application with both boost and the driver. We wanted a way to provide a working driver where that was not a prerequisite. Using the header-only MNMLSTC library offered that for users who wanted it. On the other hand, for users who were already using boost, using mnmlstc would have created an inconvenient impedance mismatch, where, for instance the optional that they used in their application was not the same optional that the driver used. Finally, since we expected tha the polyfills we needed would have C+17 versions, it seemed sensible to abstract over the three choices, ensuring that when C+17 arrived, the driver didn't depend on either MNMLSTC or boost.

Generated at Wed Feb 07 22:04:41 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.