Skip to content

Commit 836c08e

Browse files
committed
rewrite mixing-formats test
1 parent 5db8552 commit 836c08e

File tree

2 files changed

+87
-75
lines changed

2 files changed

+87
-75
lines changed

tests/run-make/mixing-formats/Makefile

-75
This file was deleted.
+87
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
// Testing various mixings of rlibs and dylibs. Makes sure that it's possible to
2+
// link an rlib to a dylib. The dependency tree among the file looks like:
3+
//
4+
// foo
5+
// / \
6+
// bar1 bar2
7+
// / \ /
8+
// baz baz2
9+
//
10+
// This is generally testing the permutations of the foo/bar1/bar2 layer against
11+
// the baz/baz2 layer
12+
13+
//@ ignore-cross-compile
14+
15+
use run_make_support::{rustc, tmp_dir};
16+
use std::fs;
17+
18+
fn main() {
19+
// Building just baz
20+
rustc().crate_type("rlib").input("foo.rs").run();
21+
rustc().crate_type("dylib").input("bar1.rs").arg("-Cprefer-dynamic").run();
22+
rustc().crate_type("dylib,rlib").input("baz.rs").arg("-Cprefer-dynamic").run();
23+
rustc().crate_type("bin").input("baz.rs").run();
24+
fs::remove_dir_all(tmp_dir()).unwrap();
25+
fs::create_dir(tmp_dir()).unwrap();
26+
rustc().crate_type("dylib").input("foo.rs").arg("-Cprefer-dynamic").run();
27+
rustc().crate_type("rlib").input("bar1.rs").run();
28+
rustc().crate_type("dylib,rlib").input("baz.rs").arg("-Cprefer-dynamic").run();
29+
rustc().crate_type("bin").input("baz.rs").run();
30+
fs::remove_dir_all(tmp_dir()).unwrap();
31+
fs::create_dir(tmp_dir()).unwrap();
32+
// Building baz2
33+
rustc().crate_type("rlib").input("foo.rs").run();
34+
rustc().crate_type("dylib").input("bar1.rs").arg("-Cprefer-dynamic").run();
35+
rustc().crate_type("dylib").input("bar2.rs").arg("-Cprefer-dynamic").run();
36+
rustc().crate_type("dylib").input("baz2.rs").run_fail_assert_exit_code(1);
37+
rustc().crate_type("bin").input("baz2.rs").run_fail_assert_exit_code(1);
38+
fs::remove_dir_all(tmp_dir()).unwrap();
39+
fs::create_dir(tmp_dir()).unwrap();
40+
rustc().crate_type("rlib").input("foo.rs").run();
41+
rustc().crate_type("rlib").input("bar1.rs").run();
42+
rustc().crate_type("dylib").input("bar2.rs").arg("-Cprefer-dynamic").run();
43+
rustc().crate_type("dylib,rlib").input("baz2.rs").run();
44+
rustc().crate_type("bin").input("baz2.rs").run;
45+
fs::remove_dir_all(tmp_dir()).unwrap();
46+
fs::create_dir(tmp_dir()).unwrap();
47+
rustc().crate_type("rlib").input("foo.rs").run();
48+
rustc().crate_type("dylib").input("bar1.rs").arg("-Cprefer-dynamic").run();
49+
rustc().crate_type("rlib").input("bar2.rs").run();
50+
rustc().crate_type("dylib,rlib").input("baz2.rs").arg("-Cprefer-dynamic").run();
51+
rustc().crate_type("bin").input("baz2.rs").run();
52+
fs::remove_dir_all(tmp_dir()).unwrap();
53+
fs::create_dir(tmp_dir()).unwrap();
54+
rustc().crate_type("rlib").input("foo.rs").run();
55+
rustc().crate_type("rlib").input("bar1.rs").run();
56+
rustc().crate_type("rlib").input("bar2.rs").run();
57+
rustc().crate_type("dylib,rlib").input("baz2.rs").arg("-Cprefer-dynamic").run();
58+
rustc().crate_type("bin").input("baz2.rs").run();
59+
fs::remove_dir_all(tmp_dir()).unwrap();
60+
fs::create_dir(tmp_dir()).unwrap();
61+
rustc().crate_type("dylib").input("foo.rs").arg("-Cprefer-dynamic").run();
62+
rustc().crate_type("rlib").input("bar1.rs").run();
63+
rustc().crate_type("rlib").input("bar2.rs").run();
64+
rustc().crate_type("dylib,rlib").input("baz2.rs").arg("-Cprefer-dynamic").run();
65+
rustc().crate_type("bin").input("baz2.rs").run();
66+
fs::remove_dir_all(tmp_dir()).unwrap();
67+
fs::create_dir(tmp_dir()).unwrap();
68+
rustc().crate_type("dylib").input("foo.rs").arg("-Cprefer-dynamic").run();
69+
rustc().crate_type("dylib").input("bar1.rs").arg("-Cprefer-dynamic").run();
70+
rustc().crate_type("rlib").input("bar2.rs").run();
71+
rustc().crate_type("dylib,rlib").input("baz2.rs").run();
72+
rustc().crate_type("bin").input("baz2.rs").run();
73+
fs::remove_dir_all(tmp_dir()).unwrap();
74+
fs::create_dir(tmp_dir()).unwrap();
75+
rustc().crate_type("dylib").input("foo.rs").arg("-Cprefer-dynamic").run();
76+
rustc().crate_type("rlib").input("bar1.rs").run();
77+
rustc().crate_type("dylib").input("bar2.rs").arg("-Cprefer-dynamic").run();
78+
rustc().crate_type("dylib,rlib").input("baz2.rs").run();
79+
rustc().crate_type("bin").input("baz2.rs").run();
80+
fs::remove_dir_all(tmp_dir()).unwrap();
81+
fs::create_dir(tmp_dir()).unwrap();
82+
rustc().crate_type("dylib").input("foo.rs").arg("-Cprefer-dynamic").run();
83+
rustc().crate_type("dylib").input("bar1.rs").arg("-Cprefer-dynamic").run();
84+
rustc().crate_type("dylib").input("bar2.rs").arg("-Cprefer-dynamic").run();
85+
rustc().crate_type("dylib,rlib").input("baz2.rs").run();
86+
rustc().crate_type("bin").input("baz2.rs").run();
87+
}

0 commit comments

Comments
 (0)