File: rmake.rs

package info (click to toggle)
rustc 1.89.0%2Bdfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 906,624 kB
  • sloc: xml: 158,148; python: 34,888; javascript: 19,595; sh: 19,221; ansic: 13,046; cpp: 7,144; asm: 4,376; makefile: 692; lisp: 174; sql: 15
file content (86 lines) | stat: -rw-r--r-- 4,172 bytes parent folder | download | duplicates (15)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
// Testing various mixings of rlibs and dylibs. Makes sure that it's possible to
// link an rlib to a dylib. The dependency tree among the file looks like:
//
//                 foo
//               /     \
//             bar1   bar2
//             /    \ /
//          baz    baz2
//
// This is generally testing the permutations of the foo/bar1/bar2 layer against
// the baz/baz2 layer

//@ ignore-cross-compile

use run_make_support::{run_in_tmpdir, rustc};

fn main() {
    run_in_tmpdir(|| {
        // Building just baz
        rustc().crate_type("rlib").input("foo.rs").run();
        rustc().crate_type("dylib").input("bar1.rs").arg("-Cprefer-dynamic").run();
        rustc().crate_type("dylib,rlib").input("baz.rs").arg("-Cprefer-dynamic").run();
        rustc().crate_type("bin").input("baz.rs").run();
    });
    run_in_tmpdir(|| {
        rustc().crate_type("dylib").input("foo.rs").arg("-Cprefer-dynamic").run();
        rustc().crate_type("rlib").input("bar1.rs").run();
        rustc().crate_type("dylib,rlib").input("baz.rs").arg("-Cprefer-dynamic").run();
        rustc().crate_type("bin").input("baz.rs").run();
    });
    run_in_tmpdir(|| {
        // Building baz2
        rustc().crate_type("rlib").input("foo.rs").run();
        rustc().crate_type("dylib").input("bar1.rs").arg("-Cprefer-dynamic").run();
        rustc().crate_type("dylib").input("bar2.rs").arg("-Cprefer-dynamic").run();
        rustc().crate_type("dylib").input("baz2.rs").run_fail().assert_exit_code(1);
        rustc().crate_type("bin").input("baz2.rs").run_fail().assert_exit_code(1);
    });
    run_in_tmpdir(|| {
        rustc().crate_type("rlib").input("foo.rs").run();
        rustc().crate_type("rlib").input("bar1.rs").run();
        rustc().crate_type("dylib").input("bar2.rs").arg("-Cprefer-dynamic").run();
        rustc().crate_type("dylib,rlib").input("baz2.rs").run();
        rustc().crate_type("bin").input("baz2.rs").run();
    });
    run_in_tmpdir(|| {
        rustc().crate_type("rlib").input("foo.rs").run();
        rustc().crate_type("dylib").input("bar1.rs").arg("-Cprefer-dynamic").run();
        rustc().crate_type("rlib").input("bar2.rs").run();
        rustc().crate_type("dylib,rlib").input("baz2.rs").arg("-Cprefer-dynamic").run();
        rustc().crate_type("bin").input("baz2.rs").run();
    });
    run_in_tmpdir(|| {
        rustc().crate_type("rlib").input("foo.rs").run();
        rustc().crate_type("rlib").input("bar1.rs").run();
        rustc().crate_type("rlib").input("bar2.rs").run();
        rustc().crate_type("dylib,rlib").input("baz2.rs").arg("-Cprefer-dynamic").run();
        rustc().crate_type("bin").input("baz2.rs").run();
    });
    run_in_tmpdir(|| {
        rustc().crate_type("dylib").input("foo.rs").arg("-Cprefer-dynamic").run();
        rustc().crate_type("rlib").input("bar1.rs").run();
        rustc().crate_type("rlib").input("bar2.rs").run();
        rustc().crate_type("dylib,rlib").input("baz2.rs").arg("-Cprefer-dynamic").run();
        rustc().crate_type("bin").input("baz2.rs").run();
    });
    run_in_tmpdir(|| {
        rustc().crate_type("dylib").input("foo.rs").arg("-Cprefer-dynamic").run();
        rustc().crate_type("dylib").input("bar1.rs").arg("-Cprefer-dynamic").run();
        rustc().crate_type("rlib").input("bar2.rs").run();
        rustc().crate_type("dylib,rlib").input("baz2.rs").run();
        rustc().crate_type("bin").input("baz2.rs").run();
    });
    run_in_tmpdir(|| {
        rustc().crate_type("dylib").input("foo.rs").arg("-Cprefer-dynamic").run();
        rustc().crate_type("rlib").input("bar1.rs").run();
        rustc().crate_type("dylib").input("bar2.rs").arg("-Cprefer-dynamic").run();
        rustc().crate_type("dylib,rlib").input("baz2.rs").run();
        rustc().crate_type("bin").input("baz2.rs").run();
    });
    rustc().crate_type("dylib").input("foo.rs").arg("-Cprefer-dynamic").run();
    rustc().crate_type("dylib").input("bar1.rs").arg("-Cprefer-dynamic").run();
    rustc().crate_type("dylib").input("bar2.rs").arg("-Cprefer-dynamic").run();
    rustc().crate_type("dylib,rlib").input("baz2.rs").run();
    rustc().crate_type("bin").input("baz2.rs").run();
}