aboutsummaryrefslogtreecommitdiffstats
path: root/test/core_plugins.mk
diff options
context:
space:
mode:
Diffstat (limited to 'test/core_plugins.mk')
-rw-r--r--test/core_plugins.mk42
1 files changed, 41 insertions, 1 deletions
diff --git a/test/core_plugins.mk b/test/core_plugins.mk
index 6d10f2a..2a534e9 100644
--- a/test/core_plugins.mk
+++ b/test/core_plugins.mk
@@ -1,6 +1,6 @@
# Core: External plugins.
-CORE_PLUGINS_CASES = all one
+CORE_PLUGINS_CASES = all one test
CORE_PLUGINS_TARGETS = $(addprefix core-plugins-,$(CORE_PLUGINS_CASES))
.PHONY: core-plugins $(CORE_PLUGINS_TARGETS)
@@ -70,3 +70,43 @@ core-plugins-one: build clean
$i "Run 'make plugin2' and confirm the target doesn't exist"
$t ! $(MAKE) --no-print-directory -C $(APP) plugin2
+
+core-plugins-test: build clean
+
+ $i "Bootstrap a new OTP library named $(APP)"
+ $t mkdir $(APP)/
+ $t cp ../erlang.mk $(APP)/
+ $t $(MAKE) -C $(APP) -f erlang.mk bootstrap-lib $v
+
+ $i "Write external plugin touch_plugin"
+ $t mkdir $(APP)/touch_plugin
+ $t echo -e "app::" >> $(APP)/touch_plugin/plugins.mk
+ $t echo -e "\ttouch markerfile" >> $(APP)/touch_plugin/plugins.mk
+ $t echo -e "test-build:: app" >> $(APP)/touch_plugin/plugins.mk
+ $t echo -e "clean::" >> $(APP)/touch_plugin/plugins.mk
+ $t echo -e "\trm -f markerfile" >> $(APP)/touch_plugin/plugins.mk
+
+ $i "Inject external plugin dependencies into $(APP)"
+ $t echo 'BUILD_DEPS = touch_plugin' >>$(APP)/Makefile.tmp
+ $t echo 'DEP_PLUGINS = touch_plugin' >>$(APP)/Makefile.tmp
+ $t echo 'dep_touch_plugin = cp touch_plugin' >>$(APP)/Makefile.tmp
+ $t cat $(APP)/Makefile >>$(APP)/Makefile.tmp
+ $t mv $(APP)/Makefile.tmp $(APP)/Makefile
+
+ $i "Build the application"
+ $t $(MAKE) -C $(APP) $v
+
+ $i "Check that the application was compiled correctly"
+ $t test -e $(APP)/markerfile
+
+ $i "Clean the application"
+ $t $(MAKE) -C $(APP) clean $v
+
+ $i "Check that the application was cleaned correctly"
+ $t test ! -e $(APP)/markerfile
+
+ $i "Run tests"
+ $t $(MAKE) -C $(APP) tests $v
+
+ $i "Check that the application was compiled correctly"
+ $t test -e $(APP)/markerfile