summaryrefslogtreecommitdiffstats
path: root/tests/run-make/extern-flag-pathless/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'tests/run-make/extern-flag-pathless/Makefile')
-rw-r--r--tests/run-make/extern-flag-pathless/Makefile27
1 files changed, 21 insertions, 6 deletions
diff --git a/tests/run-make/extern-flag-pathless/Makefile b/tests/run-make/extern-flag-pathless/Makefile
index 701bfcd28..36b374e0d 100644
--- a/tests/run-make/extern-flag-pathless/Makefile
+++ b/tests/run-make/extern-flag-pathless/Makefile
@@ -3,17 +3,32 @@ include ../tools.mk
# Test mixing pathless --extern with paths.
+# Test for static linking by checking that the binary runs if the dylib
+# is removed and test for dynamic linking by checking that the binary
+# fails to run if the dylib is removed.
+
all:
- $(RUSTC) bar-static.rs --crate-name=bar --crate-type=rlib
- $(RUSTC) bar-dynamic.rs --crate-name=bar --crate-type=dylib -C prefer-dynamic
+ $(RUSTC) bar.rs --crate-type=rlib --crate-type=dylib -Cprefer-dynamic
+
# rlib preferred over dylib
$(RUSTC) foo.rs --extern bar
- $(call RUN,foo) | $(CGREP) 'static'
+ mv $(call DYLIB,bar) $(TMPDIR)/bar.tmp
+ $(call RUN,foo)
+ mv $(TMPDIR)/bar.tmp $(call DYLIB,bar)
+
$(RUSTC) foo.rs --extern bar=$(TMPDIR)/libbar.rlib --extern bar
- $(call RUN,foo) | $(CGREP) 'static'
+ mv $(call DYLIB,bar) $(TMPDIR)/bar.tmp
+ $(call RUN,foo)
+ mv $(TMPDIR)/bar.tmp $(call DYLIB,bar)
+
# explicit --extern overrides pathless
$(RUSTC) foo.rs --extern bar=$(call DYLIB,bar) --extern bar
- $(call RUN,foo) | $(CGREP) 'dynamic'
+ mv $(call DYLIB,bar) $(TMPDIR)/bar.tmp
+ $(call FAIL,foo)
+ mv $(TMPDIR)/bar.tmp $(call DYLIB,bar)
+
# prefer-dynamic does what it says
$(RUSTC) foo.rs --extern bar -C prefer-dynamic
- $(call RUN,foo) | $(CGREP) 'dynamic'
+ mv $(call DYLIB,bar) $(TMPDIR)/bar.tmp
+ $(call FAIL,foo)
+ mv $(TMPDIR)/bar.tmp $(call DYLIB,bar)