aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/shell.mk2
-rw-r--r--test/plugin_shell.mk19
2 files changed, 20 insertions, 1 deletions
diff --git a/plugins/shell.mk b/plugins/shell.mk
index c9e9975..9d2280f 100644
--- a/plugins/shell.mk
+++ b/plugins/shell.mk
@@ -26,5 +26,5 @@ $(foreach dep,$(SHELL_DEPS),$(eval $(call dep_target,$(dep))))
build-shell-deps: $(ALL_SHELL_DEPS_DIRS)
$(verbose) set -e; for dep in $(ALL_SHELL_DEPS_DIRS) ; do $(MAKE) -C $$dep ; done
-shell: build-shell-deps
+shell:: build-shell-deps
$(gen_verbose) $(SHELL_ERL) -pa $(SHELL_PATHS) $(SHELL_OPTS)
diff --git a/test/plugin_shell.mk b/test/plugin_shell.mk
index 9821864..5a43678 100644
--- a/test/plugin_shell.mk
+++ b/test/plugin_shell.mk
@@ -6,6 +6,25 @@ SHELL_TARGETS = $(call list_targets,shell)
shell: $(SHELL_TARGETS)
+shell-compile: build clean
+
+ $i "Bootstrap a new OTP application named $(APP)"
+ $t mkdir $(APP)/
+ $t cp ../erlang.mk $(APP)/
+ $t $(MAKE) -C $(APP) -f erlang.mk bootstrap $v
+
+ $i "Ensure our application is recompiled before the shell runs"
+ $t perl -ni.bak -e 'print;if ($$.==1) {print "shell:: app\n"}' $(APP)/Makefile
+
+ $i "Run the shell"
+ $t $(MAKE) -C $(APP) shell SHELL_OPTS="-eval 'halt()'" $v
+
+ $i "Check that all compiled files exist"
+ $t test -f $(APP)/$(APP).d
+ $t test -f $(APP)/ebin/$(APP).app
+ $t test -f $(APP)/ebin/$(APP)_app.beam
+ $t test -f $(APP)/ebin/$(APP)_sup.beam
+
shell-default: build clean
$i "Bootstrap a new OTP library named $(APP)"