google / cargo-raze

Generate Bazel BUILD from Cargo dependencies!
Apache License 2.0
478 stars 104 forks source link

Tests don't clean up open descriptors #544

Open viraptor opened 1 year ago

viraptor commented 1 year ago

I don't know which part exactly is at fault here, but with default settings for some systems, tests hit the open file limit very quickly. On a default macos machine:

...

---- planning::tests::test_subplan_produces_crate_root_with_forward_slash stdout ----
thread 'planning::tests::test_subplan_produces_crate_root_with_forward_slash' panicked at 'Cannot build HTTP client: Error { kind: ClientInitialization, context: None, source: Some(Os { code: 24, kind: Uncategorized, message: "Too many open files" }), source_type: Some("std::io::error::Error") }', /Users/viraptor/.cargo/registry/src/github.com-1ecc6299db9ec823/httpmock-0.5.7/src/api/adapter/mod.rs:136:14

---- settings::tests::test_loading_settings_legacy stdout ----
thread 'settings::tests::test_loading_settings_legacy' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 24, kind: Uncategorized, message: "Too many open files" }', src/settings.rs:912:53

---- settings::tests::test_loading_without_package_settings stdout ----
thread 'settings::tests::test_loading_without_package_settings' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 24, kind: Uncategorized, message: "Too many open files" }', src/settings.rs:839:53

---- settings::tests::test_loading_workspace_settings stdout ----
thread 'settings::tests::test_loading_workspace_settings' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 24, kind: Uncategorized, message: "Too many open files" }', src/testing.rs:163:40

---- planning::tests::test_semver_matching stdout ----
thread 'planning::tests::test_semver_matching' panicked at 'Cannot build HTTP client: Error { kind: ClientInitialization, context: None, source: Some(Os { code: 24, kind: Uncategorized, message: "Too many open files" }), source_type: Some("std::io::error::Error") }', /Users/viraptor/.cargo/registry/src/github.com-1ecc6299db9ec823/httpmock-0.5.7/src/api/adapter/mod.rs:136:14

failures:
    planning::tests::test_binary_dependencies_remote_genmode
    planning::tests::test_plan_build_produces_aliased_dependencies
    planning::tests::test_plan_build_produces_build_proc_macro_dependencies
    planning::tests::test_plan_build_produces_proc_macro_dependencies
    planning::tests::test_semver_matching
    planning::tests::test_subplan_produces_crate_root_with_forward_slash
    planning::tests::test_workspace_context_contains_no_binary_dependencies
    planning::tests::test_workspace_members_share_dependency_of_different_versions
    settings::tests::test_loading_settings_legacy
    settings::tests::test_loading_without_package_settings
    settings::tests::test_loading_workspace_settings

test result: FAILED. 49 passed; 11 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.41s

Bumping up the limits lets the tests pass, but maybe they should clean up and not go into hundreds.