File tree 6 files changed +100
-0
lines changed
src/test/run-make/many-crates-but-no-match
6 files changed +100
-0
lines changed Original file line number Diff line number Diff line change
1
+ -include ../tools.mk
2
+
3
+ # Modelled after compile-fail/changing-crates test, but this one puts
4
+ # more than one (mismatching) candidate crate into the search path,
5
+ # which did not appear directly expressible in compile-fail/aux-build
6
+ # infrastructure.
7
+ #
8
+ # Note that we move the built libraries into target direcrtories rather than
9
+ # use the `--out-dir` option because the `../tools.mk` file already bakes a
10
+ # use of `--out-dir` into the definition of $(RUSTC).
11
+
12
+ A1 =$(TMPDIR ) /a1
13
+ A2 =$(TMPDIR ) /a2
14
+ A3 =$(TMPDIR ) /a3
15
+
16
+ # A hack to match distinct lines of output from a single run.
17
+ LOG =$(TMPDIR ) /log.txt
18
+
19
+ all :
20
+ mkdir -p $(A1 ) $(A2 ) $(A3 )
21
+ $(RUSTC ) --crate-type=rlib crateA1.rs
22
+ mv $(TMPDIR ) /$(call RLIB_GLOB,crateA) $(A1 )
23
+ $(RUSTC ) --crate-type=rlib -L$(A1 ) crateB.rs
24
+ $(RUSTC ) --crate-type=rlib crateA2.rs
25
+ mv $(TMPDIR ) /$(call RLIB_GLOB,crateA) $(A2 )
26
+ $(RUSTC ) --crate-type=rlib crateA3.rs
27
+ mv $(TMPDIR ) /$(call RLIB_GLOB,crateA) $(A3 )
28
+ # Ensure crateC fails to compile since A1 is "missing" and A2/A3 hashes do not match
29
+ $(RUSTC ) -L$(A2 ) -L$(A3 ) crateC.rs > $(LOG ) 2>&1 || true
30
+ grep " error: found possibly newer version of crate \` crateA\` which \` crateB\` depends on" $(LOG )
31
+ grep " note: perhaps this crate needs to be recompiled?" $(LOG )
32
+ grep " note: crate \` crateA\` path #1:" $(LOG )
33
+ grep " note: crate \` crateA\` path #2:" $(LOG )
34
+ grep " note: crate \` crateB\` path #1:" $(LOG )
Original file line number Diff line number Diff line change
1
+ // Copyright 2014 The Rust Project Developers. See the COPYRIGHT
2
+ // file at the top-level directory of this distribution and at
3
+ // http://rust-lang.org/COPYRIGHT.
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6
+ // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7
+ // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8
+ // option. This file may not be copied, modified, or distributed
9
+ // except according to those terms.
10
+
11
+ #![ crate_id="crateA" ]
12
+
13
+ // Base crate
14
+ pub fn func < T > ( ) { }
Original file line number Diff line number Diff line change
1
+ // Copyright 2014 The Rust Project Developers. See the COPYRIGHT
2
+ // file at the top-level directory of this distribution and at
3
+ // http://rust-lang.org/COPYRIGHT.
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6
+ // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7
+ // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8
+ // option. This file may not be copied, modified, or distributed
9
+ // except according to those terms.
10
+
11
+ #![ crate_id="crateA" ]
12
+
13
+ // Base crate
14
+ pub fn func < T > ( ) { println ! ( "hello" ) ; }
Original file line number Diff line number Diff line change
1
+ // Copyright 2014 The Rust Project Developers. See the COPYRIGHT
2
+ // file at the top-level directory of this distribution and at
3
+ // http://rust-lang.org/COPYRIGHT.
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6
+ // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7
+ // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8
+ // option. This file may not be copied, modified, or distributed
9
+ // except according to those terms.
10
+
11
+ #![ crate_id="crateA" ]
12
+
13
+ // Base crate
14
+ pub fn foo < T > ( ) { println ! ( "world!" ) ; }
Original file line number Diff line number Diff line change
1
+ // Copyright 2014 The Rust Project Developers. See the COPYRIGHT
2
+ // file at the top-level directory of this distribution and at
3
+ // http://rust-lang.org/COPYRIGHT.
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6
+ // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7
+ // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8
+ // option. This file may not be copied, modified, or distributed
9
+ // except according to those terms.
10
+
11
+ extern crate crateA;
Original file line number Diff line number Diff line change
1
+ // Copyright 2014 The Rust Project Developers. See the COPYRIGHT
2
+ // file at the top-level directory of this distribution and at
3
+ // http://rust-lang.org/COPYRIGHT.
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6
+ // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7
+ // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8
+ // option. This file may not be copied, modified, or distributed
9
+ // except according to those terms.
10
+
11
+ extern crate crateB;
12
+
13
+ fn main ( ) { }
You can’t perform that action at this time.
0 commit comments