Overview of API Tester
mainThe fdb_c_api_tester is a framework for end-to-end testing of the FoundationDB C API on real clusters. Unlike simulation tests (which are deterministic and single-threaded), API tests are designed to test multi-threaded aspects of the client layers above the Native Client.
Key Testing Goals:
- Functional Correctness: Validating the Multi-Version Client (MVC) and Thread-Safe Client.
- Race Conditions: Detecting issues caused by improper synchronization or accessing Native Client state from wrong threads.
- Memory Management: Ensuring thread-safe reference counting and verifying that memory allocated by a client library is deallocated by the same library.
- Interoperability: Ensuring correct behavior across different client API versions.
- Cluster Upgrades: Verifying that database and transaction state migrate correctly during upgrades and that pending operations are retried successfully.