|
1 | 1 | use std::process;
|
2 | 2 |
|
| 3 | +fn get_realpath(cmd: &str) -> String { |
| 4 | + let output = process::Command::new("/usr/bin/xcrun") |
| 5 | + .arg("-f") |
| 6 | + .arg(cmd) |
| 7 | + .output() |
| 8 | + .expect("can get realpath"); |
| 9 | + String::from_utf8(output.stdout).expect("output is valid utf8") |
| 10 | +} |
| 11 | + |
3 | 12 | pub fn compare(args: Vec<&str>) {
|
4 |
| - let apple = process::Command::new("/Library/Developer/CommandLineTools/usr/bin/dyldinfo") |
| 13 | + let apple = process::Command::new("/usr/bin/xcrun") |
| 14 | + .arg("dyldinfo") |
5 | 15 | .args(&args)
|
6 | 16 | .output()
|
7 | 17 | .expect("run Apple dyldinfo");
|
@@ -39,39 +49,28 @@ pub fn compare(args: Vec<&str>) {
|
39 | 49 | #[cfg(target_os = "macos")]
|
40 | 50 | #[test]
|
41 | 51 | fn compare_binds() {
|
42 |
| - compare(vec![ |
43 |
| - "-bind", |
44 |
| - "/Library/Developer/CommandLineTools/usr/bin/dyldinfo", |
45 |
| - ]); |
46 |
| - compare(vec![ |
47 |
| - "-bind", |
48 |
| - "/Library/Developer/CommandLineTools/usr/bin/clang", |
49 |
| - ]); |
| 52 | + let dyldinfo = get_realpath("dyldinfo"); |
| 53 | + let clang = get_realpath("clang"); |
| 54 | + compare(vec!["-bind", &dyldinfo]); |
| 55 | + compare(vec!["-bind", &clang]); |
50 | 56 | compare(vec!["-bind", "/usr/bin/tmutil"]);
|
51 | 57 | }
|
52 | 58 |
|
53 | 59 | #[cfg(target_os = "macos")]
|
54 | 60 | #[test]
|
55 | 61 | fn compare_lazy_binds() {
|
56 |
| - compare(vec![ |
57 |
| - "-lazy_bind", |
58 |
| - "/Library/Developer/CommandLineTools/usr/bin/dyldinfo", |
59 |
| - ]); |
60 |
| - compare(vec![ |
61 |
| - "-lazy_bind", |
62 |
| - "/Library/Developer/CommandLineTools/usr/bin/clang", |
63 |
| - ]); |
| 62 | + let dyldinfo = get_realpath("dyldinfo"); |
| 63 | + let clang = get_realpath("clang"); |
| 64 | + compare(vec!["-lazy_bind", &dyldinfo]); |
| 65 | + compare(vec!["-lazy_bind", &clang]); |
64 | 66 | compare(vec!["-lazy_bind", "/usr/bin/tmutil"]);
|
65 | 67 | }
|
66 | 68 |
|
67 | 69 | #[cfg(target_os = "macos")]
|
68 | 70 | #[test]
|
69 | 71 | fn compare_combined_options() {
|
70 |
| - compare(vec![ |
71 |
| - "-lazy_bind", |
72 |
| - "-bind", |
73 |
| - "/Library/Developer/CommandLineTools/usr/bin/dyldinfo", |
74 |
| - ]); |
| 72 | + let dyldinfo = get_realpath("dyldinfo"); |
| 73 | + compare(vec!["-lazy_bind", "-bind", &dyldinfo]); |
75 | 74 | }
|
76 | 75 |
|
77 | 76 | #[cfg(not(target_os = "macos"))]
|
|
0 commit comments