google / tarpc

An RPC framework for Rust with a focus on ease of use.
MIT License
3.18k stars 194 forks source link

Combinatorialize tarpc feature tests. #428

Closed tikue closed 8 months ago

tikue commented 8 months ago

In the CI github workflow, in the job test-with-features, make a separate matrix dimension for each Cargo feature to enable. Github Actions should combine these features, so that we get more test coverage of different feature enablements.

This also introduces a minor breaking change by renaming serde_transport::{tcp,unix}::Connect to {Tcp,Unix}Connect.

Rationale: enabling all combinations actually revealed a compile_fail error that only arises when certain combinations of features are enabled! In the serde_transport module, there are two submodules, tcp and unix, which each provide a Connect type. When only one of the tcp/unix features is enabled, there is a unique path to the Connect type, and the name gets shortened in compile error messages. When both features are enabled, there is no longer a unique path to the Connect type, and the compile error messages print the full path.