Skip to content

Latest commit

 

History

History
35 lines (23 loc) · 867 Bytes

README.md

File metadata and controls

35 lines (23 loc) · 867 Bytes

This is a demo showing how cargo pollutes environment variables and break a test case.

On linux, cargo leaks env variables such as SSL_CERT_FILE and SSL_CERT_DIR. openssl will loads certificates from SSL_CERT_FILE is this env var is set.

Thus if a program(e.g., unittest) depends on openssl, cargo build && ./target/debug/bin-name may work very fine, but cargo run may time out, because loading certificates takes several dozen milliseconds(~ 30ms to 70ms).

cargo run in this repo shows the env vars a program sees and the time it takes calling openssl::ssl::SslConnector::builder().

On linux:

cargo run

SSL_CERT_DIR: /usr/lib/ssl/certs
SSL_CERT_FILE: /usr/lib/ssl/certs/ca-certificates.crt
...
=== : 66.382982ms

On my m1 mac:

cargo run

...
=== : 9.23432ms