From d0a0ff680eb02dddb7cea06fa0e26ecd08eab00a Mon Sep 17 00:00:00 2001 From: Andrew Nester Date: Tue, 28 Mar 2023 11:00:19 +0200 Subject: [PATCH] chore: add test for Linux shared libraries (#18461) Closes #18266 --- cli/tests/integration/linux_tests.rs | 35 ++++++++++++++++++++++++++++ cli/tests/integration/mod.rs | 2 ++ 2 files changed, 37 insertions(+) create mode 100644 cli/tests/integration/linux_tests.rs diff --git a/cli/tests/integration/linux_tests.rs b/cli/tests/integration/linux_tests.rs new file mode 100644 index 0000000000..c12454e231 --- /dev/null +++ b/cli/tests/integration/linux_tests.rs @@ -0,0 +1,35 @@ +// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license. + +#[cfg(target_os = "linux")] +#[test] +// https://github.com/denoland/deno/issues/18266 +fn linux_shared_libraries() { + use test_util as util; + + const EXPECTED: [&str; 7] = [ + "linux-vdso.so.1", + "libdl.so.2", + "libgcc_s.so.1", + "libpthread.so.0", + "libm.so.6", + "libc.so.6", + "/lib64/ld-linux-x86-64.so.2", + ]; + + let ldd = std::process::Command::new("ldd") + .arg("-L") + .arg(util::deno_exe_path()) + .output() + .expect("Failed to execute ldd"); + + let output = std::str::from_utf8(&ldd.stdout).unwrap(); + // Ensure that the output contains only the expected shared libraries. + for line in output.lines().skip(1) { + let path = line.split_whitespace().next().unwrap(); + assert!( + EXPECTED.contains(&path), + "Unexpected shared library: {}", + path + ); + } +} diff --git a/cli/tests/integration/mod.rs b/cli/tests/integration/mod.rs index 4b258d130e..9a5f1a49f4 100644 --- a/cli/tests/integration/mod.rs +++ b/cli/tests/integration/mod.rs @@ -123,6 +123,8 @@ mod install; mod js_unit_tests; #[path = "lint_tests.rs"] mod lint; +#[path = "linux_tests.rs"] +mod linux; #[path = "lsp_tests.rs"] mod lsp; #[path = "macos_tests.rs"]