summaryrefslogtreecommitdiffstats
path: root/tests/run-make/symlinked-extern
diff options
context:
space:
mode:
Diffstat (limited to 'tests/run-make/symlinked-extern')
-rw-r--r--tests/run-make/symlinked-extern/Makefile12
-rw-r--r--tests/run-make/symlinked-extern/bar.rs6
-rw-r--r--tests/run-make/symlinked-extern/baz.rs6
-rw-r--r--tests/run-make/symlinked-extern/foo.rs5
4 files changed, 29 insertions, 0 deletions
diff --git a/tests/run-make/symlinked-extern/Makefile b/tests/run-make/symlinked-extern/Makefile
new file mode 100644
index 000000000..28c764b84
--- /dev/null
+++ b/tests/run-make/symlinked-extern/Makefile
@@ -0,0 +1,12 @@
+# ignore-cross-compile
+include ../tools.mk
+
+# ignore-windows
+# `ln` is actually `cp` on msys.
+
+all:
+ $(RUSTC) foo.rs
+ mkdir -p $(TMPDIR)/other
+ ln -nsf $(TMPDIR)/libfoo.rlib $(TMPDIR)/other
+ $(RUSTC) bar.rs -L $(TMPDIR)
+ $(RUSTC) baz.rs --extern foo=$(TMPDIR)/other/libfoo.rlib -L $(TMPDIR)
diff --git a/tests/run-make/symlinked-extern/bar.rs b/tests/run-make/symlinked-extern/bar.rs
new file mode 100644
index 000000000..cd9c959d5
--- /dev/null
+++ b/tests/run-make/symlinked-extern/bar.rs
@@ -0,0 +1,6 @@
+#![crate_type = "rlib"]
+
+extern crate foo;
+
+pub fn bar(_s: foo::S) {
+}
diff --git a/tests/run-make/symlinked-extern/baz.rs b/tests/run-make/symlinked-extern/baz.rs
new file mode 100644
index 000000000..cd433a3ac
--- /dev/null
+++ b/tests/run-make/symlinked-extern/baz.rs
@@ -0,0 +1,6 @@
+extern crate bar;
+extern crate foo;
+
+fn main() {
+ bar::bar(foo::foo());
+}
diff --git a/tests/run-make/symlinked-extern/foo.rs b/tests/run-make/symlinked-extern/foo.rs
new file mode 100644
index 000000000..c00700b8c
--- /dev/null
+++ b/tests/run-make/symlinked-extern/foo.rs
@@ -0,0 +1,5 @@
+#![crate_type = "rlib"]
+
+pub struct S;
+
+pub fn foo() -> S { S }