summaryrefslogtreecommitdiffstats
path: root/vendor/rustix/tests/backends.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/rustix/tests/backends.rs')
-rw-r--r--vendor/rustix/tests/backends.rs109
1 files changed, 0 insertions, 109 deletions
diff --git a/vendor/rustix/tests/backends.rs b/vendor/rustix/tests/backends.rs
deleted file mode 100644
index 4b88bd11c..000000000
--- a/vendor/rustix/tests/backends.rs
+++ /dev/null
@@ -1,109 +0,0 @@
-use std::process::Command;
-
-#[test]
-fn test_backends() {
- // Pick an arbitrary platform where linux_raw is enabled by default and
- // ensure that the use-default crate uses it.
- #[cfg(all(target_os = "linux", target_arch = "aarch64"))]
- {
- assert!(
- !has_dependency("test-crates/use-default", &[], &[], &["RUSTFLAGS"], "libc"),
- "use-default depends on libc"
- );
- assert!(
- has_dependency(
- "test-crates/use-default",
- &[],
- &[],
- &["RUSTFLAGS"],
- "linux-raw-sys"
- ),
- "use-default does not depend on linux-raw-sys"
- );
- }
-
- #[cfg(windows)]
- let libc_dep = "windows-sys";
- #[cfg(unix)]
- let libc_dep = "libc";
-
- // Test the use-libc crate, which enables the "use-libc" cargo feature.
- assert!(
- has_dependency("test-crates/use-libc", &[], &[], &["RUSTFLAGS"], libc_dep),
- "use-libc doesn't depend on {}",
- libc_dep
- );
-
- // Test the use-default crate with `--cfg=rustix_use_libc`.
- assert!(
- has_dependency(
- "test-crates/use-default",
- &[],
- &[("RUSTFLAGS", "--cfg=rustix_use_libc")],
- &[],
- libc_dep
- ),
- "use-default with --cfg=rustix_use_libc does not depend on {}",
- libc_dep
- );
- assert!(
- !has_dependency(
- "test-crates/use-default",
- &[],
- &[("RUSTFLAGS", "--cfg=rustix_use_libc")],
- &[],
- "linux-raw-sys"
- ),
- "use-default with --cfg=rustix_use_libc depends on linux-raw-sys"
- );
-
- // Test the use-default crate with `--features=rustix/use-libc`.
- assert!(
- has_dependency(
- "test-crates/use-default",
- &["--features=rustix/use-libc"],
- &[],
- &[],
- libc_dep
- ),
- "use-default with --features=rustix/use-libc does not depend on {}",
- libc_dep
- );
-}
-
-/// Test whether the crate at directory `dir` has a dependency on `dependency`,
-/// setting the environment variables `envs` and unsetting the environment
-/// variables `remove_envs` when running `cargo`.
-fn has_dependency(
- dir: &str,
- args: &[&str],
- envs: &[(&str, &str)],
- remove_envs: &[&str],
- dependency: &str,
-) -> bool {
- let mut command = Command::new("cargo");
-
- command
- .arg("tree")
- .arg("--quiet")
- .arg("--edges=normal")
- .arg(&format!("--invert={}", dependency))
- .current_dir(dir);
-
- command.args(args);
- for (key, value) in envs {
- command.env(key, value);
- }
- for key in remove_envs {
- command.env_remove(key);
- }
-
- let child = command.output().unwrap();
-
- // `cargo tree --invert=foo` can fail in two different ways: it exits with
- // a non-zero status if the dependency is not present in the Cargo.toml
- // configuration, and it exists with a zero status and prints nothing if
- // the dependency is present but optional and not enabled. So we check for
- // both here.
- child.status.success() && !child.stdout.is_empty()
-}