fresh-borzoni opened a new pull request, #476:
URL: https://github.com/apache/fluss-rust/pull/476

   ## Summary
   
   closes #393 #394
   
   All three language bindings (Rust, Python, C++) previously had their own 
Docker cluster management, each with hardcoded image versions, container 
naming, SASL configuration, and readiness checks. Bugs had to be found and 
fixed in each implementation independently.
                                                                                
                                                                                
                                                                                
        
   This PR extracts the shared logic into a fluss-test-cluster crate that 
produces both a library (used by Rust tests directly) and a CLI binary (used by 
Python and C++ via subprocess). The CLI's start command is idempotent: it 
starts containers if needed, waits for readiness, and prints cluster addresses 
as JSON to stdout. The stop command tears everything down.
                                                                                
                                                                                
                                                                                
        
   Python's conftest.py calls the CLI, parses the JSON, and wires up pytest 
fixtures. The filelock package serializes xdist workers so only one starts the 
cluster. 
   C++ test_utils.h follows the same pattern: call CLI, parse JSON with 
nlohmann/json, connect via GoogleTest environment. Rust tests use the library 
directly through a LazyLock singleton, no CLI needed.
                                                                                
                                                                                
                                                                                
        
   Docker image versions are centralized in test-images.env, read at compile 
time by build.rs and at CI time by a new docker-cache composite action that 
caches pulled images across all three workflows. 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to