mirror of
https://github.com/denoland/deno.git
synced 2024-11-22 15:06:54 -05:00
chore: add test for macOS shared libraries (#18244)
Closes https://github.com/denoland/deno/issues/18243
This commit is contained in:
parent
e30d24be72
commit
0eabd2c6d6
1 changed files with 37 additions and 0 deletions
|
@ -85,6 +85,43 @@ macro_rules! command_step(
|
|||
}
|
||||
);
|
||||
|
||||
#[cfg(target_os = "macos")]
|
||||
#[test]
|
||||
// https://github.com/denoland/deno/issues/18243
|
||||
fn macos_shared_libraries() {
|
||||
use test_util as util;
|
||||
|
||||
// target/release/deno:
|
||||
// /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1953.255.0)
|
||||
// /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 1228.0.0)
|
||||
// /System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 60420.60.24)
|
||||
// /usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
|
||||
// /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1319.0.0)
|
||||
const EXPECTED: [&'static str; 5] =
|
||||
["/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation",
|
||||
"/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices",
|
||||
"/System/Library/Frameworks/Security.framework/Versions/A/Security",
|
||||
"/usr/lib/libiconv.2.dylib",
|
||||
"/usr/lib/libSystem.B.dylib"];
|
||||
|
||||
let otool = std::process::Command::new("otool")
|
||||
.arg("-L")
|
||||
.arg(util::deno_exe_path())
|
||||
.output()
|
||||
.expect("Failed to execute otool");
|
||||
|
||||
let output = std::str::from_utf8(&otool.stdout).unwrap();
|
||||
// Ensure that the output contains only the expected shared libraries.
|
||||
for line in output.lines().skip(1) {
|
||||
let path = line.trim().split_whitespace().next().unwrap();
|
||||
assert!(
|
||||
EXPECTED.contains(&path),
|
||||
"Unexpected shared library: {}",
|
||||
path
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// These files have `_tests.rs` suffix to make it easier to tell which file is
|
||||
// the test (ex. `lint_tests.rs`) and which is the implementation (ex. `lint.rs`)
|
||||
// when both are open, especially for two tabs in VS Code
|
||||
|
|
Loading…
Reference in a new issue