3 all: $(TMPDIR)/libnative.a
4 mkdir -p $(TMPDIR)/crate
5 mkdir -p $(TMPDIR)/native
6 mv $(TMPDIR)/libnative.a $(TMPDIR)/native
8 mv $(TMPDIR)/liba.rlib $(TMPDIR)/crate
9 $(RUSTC) b.rs -L native=$(TMPDIR)/crate && exit 1 || exit 0
10 $(RUSTC) b.rs -L dependency=$(TMPDIR)/crate && exit 1 || exit 0
11 $(RUSTC) b.rs -L crate=$(TMPDIR)/crate
12 $(RUSTC) b.rs -L all=$(TMPDIR)/crate
13 $(RUSTC) c.rs -L native=$(TMPDIR)/crate && exit 1 || exit 0
14 $(RUSTC) c.rs -L crate=$(TMPDIR)/crate && exit 1 || exit 0
15 $(RUSTC) c.rs -L dependency=$(TMPDIR)/crate
16 $(RUSTC) c.rs -L all=$(TMPDIR)/crate
17 $(RUSTC) d.rs -L dependency=$(TMPDIR)/native && exit 1 || exit 0
18 $(RUSTC) d.rs -L crate=$(TMPDIR)/native && exit 1 || exit 0
19 $(RUSTC) d.rs -L native=$(TMPDIR)/native
20 $(RUSTC) d.rs -L all=$(TMPDIR)/native
21 # Deduplication tests:
22 # Same hash, no errors.
25 $(RUSTC) e.rs -o $(TMPDIR)/e1/libe.rlib
26 $(RUSTC) e.rs -o $(TMPDIR)/e2/libe.rlib
27 $(RUSTC) f.rs -L $(TMPDIR)/e1 -L $(TMPDIR)/e2
28 $(RUSTC) f.rs -L crate=$(TMPDIR)/e1 -L $(TMPDIR)/e2
29 $(RUSTC) f.rs -L crate=$(TMPDIR)/e1 -L crate=$(TMPDIR)/e2
30 # Different hash, errors.
31 $(RUSTC) e2.rs -o $(TMPDIR)/e2/libe.rlib
32 $(RUSTC) f.rs -L $(TMPDIR)/e1 -L $(TMPDIR)/e2 && exit 1 || exit 0
33 $(RUSTC) f.rs -L crate=$(TMPDIR)/e1 -L $(TMPDIR)/e2 && exit 1 || exit 0
34 $(RUSTC) f.rs -L crate=$(TMPDIR)/e1 -L crate=$(TMPDIR)/e2 && exit 1 || exit 0
35 # Native/dependency paths don't cause errors.
36 $(RUSTC) f.rs -L native=$(TMPDIR)/e1 -L $(TMPDIR)/e2
37 $(RUSTC) f.rs -L dependency=$(TMPDIR)/e1 -L $(TMPDIR)/e2
38 $(RUSTC) f.rs -L dependency=$(TMPDIR)/e1 -L crate=$(TMPDIR)/e2