diff options
Diffstat (limited to 'test/plugin_relx.mk')
-rw-r--r-- | test/plugin_relx.mk | 171 |
1 files changed, 153 insertions, 18 deletions
diff --git a/test/plugin_relx.mk b/test/plugin_relx.mk index 2771e8f..7e08fe0 100644 --- a/test/plugin_relx.mk +++ b/test/plugin_relx.mk @@ -25,9 +25,6 @@ relx-rel: init $i "Build the release" $t $(MAKE) -C $(APP) $v - $i "Check that relx was downloaded" - $t test -f $(APP)/.erlang.mk/relx - $i "Check that the release was built" $t test -d $(APP)/_rel $t test -d $(APP)/_rel/$(APP)_release @@ -97,9 +94,6 @@ relx-bare-rel: init $i "Build the release" $t $(MAKE) -C $(APP) rel $v - $i "Check that relx was downloaded" - $t test -f $(APP)/.erlang.mk/relx - $i "Check that the release was built" $t test -d $(APP)/_rel $t test -d $(APP)/_rel/$(APP)_release @@ -108,6 +102,23 @@ relx-bare-rel: init $t test -d $(APP)/_rel/$(APP)_release/releases $t test -d $(APP)/_rel/$(APP)_release/releases/1 +relx-output-dir: init + + $i "Bootstrap a new release named $(APP)" + $t mkdir $(APP)/ + $t cp ../erlang.mk $(APP)/ + $t $(MAKE) -C $(APP) -f erlang.mk bootstrap bootstrap-rel $v + + $i "Set RELX_OUTPUT_DIR to _rel2" + $t perl -ni.bak -e 'print;if ($$.==1) {print "RELX_OUTPUT_DIR = _rel2\n"}' $(APP)/Makefile + + $i "Build the release" + $t $(MAKE) -C $(APP) $v + + $i "Check that the release exists in the correct location" + $t ! test -d $(APP)/_rel + $t test -d $(APP)/_rel2 + relx-post-rel: init $i "Bootstrap a new release named $(APP)" @@ -122,9 +133,6 @@ relx-post-rel: init $i "Build the release" $t $(MAKE) -C $(APP) $v - $i "Check that relx was downloaded" - $t test -f $(APP)/.erlang.mk/relx - $i "Check that the release was built" $t test -d $(APP)/_rel $t test -d $(APP)/_rel/$(APP)_release @@ -154,6 +162,99 @@ relx-post-rel: init $i "Check that the output directory was removed entirely" $t test ! -d $(APP)/_rel/ +relx-rel-with-script: init + + $i "Bootstrap a new release named $(APP)" + $t mkdir $(APP)/ + $t cp ../erlang.mk $(APP)/ + $t $(MAKE) -C $(APP) -f erlang.mk bootstrap bootstrap-rel $v + + $i "Create a relx.config.script file" + $t printf "%s\n" \ + "{release, {App, _Ver}, Apps} = lists:keyfind(release, 1, CONFIG)," \ + "lists:keyreplace(release, 1, CONFIG, {release, {App, \"ONE\"}, Apps})." \ + > $(APP)/relx.config.script + + $i "Build the release" + $t $(MAKE) -C $(APP) $v + + $i "Check that the release was built" + $t test -d $(APP)/_rel + $t test -d $(APP)/_rel/$(APP)_release + $t test -d $(APP)/_rel/$(APP)_release/bin + $t test -d $(APP)/_rel/$(APP)_release/lib + $t test -d $(APP)/_rel/$(APP)_release/releases + $t test -d $(APP)/_rel/$(APP)_release/releases/ONE + + $i "Clean the application" + $t $(MAKE) -C $(APP) clean $v + + $i "Check that the release still exists" + $t test -d $(APP)/_rel + $t test -d $(APP)/_rel/$(APP)_release + $t test -d $(APP)/_rel/$(APP)_release/bin + $t test -d $(APP)/_rel/$(APP)_release/lib + $t test -d $(APP)/_rel/$(APP)_release/releases + $t test -d $(APP)/_rel/$(APP)_release/releases/ONE + + $i "Distclean the application" + $t $(MAKE) -C $(APP) distclean $v + + $i "Check that the output directory was removed entirely" + $t test ! -d $(APP)/_rel/ + +define relx-rel-with-only-script-relx.config.script.erl +endef + +relx-rel-with-script-only: init + + $i "Bootstrap a new release named $(APP)" + $t mkdir $(APP)/ + $t cp ../erlang.mk $(APP)/ + $t $(MAKE) -C $(APP) -f erlang.mk bootstrap bootstrap-rel $v + + $i "Delete relx.config and create a relx.config.script file" + $t rm -f $(APP)/relx.config + $t printf "%s\n" \ + "CONFIG = [], %% Assert that config is empty." \ + "[" \ + " {release, {$(APP)_release, \"ONE\"}, [$(APP), sasl, runtime_tools]}," \ + " {dev_mode, false}," \ + " {include_erts, true}," \ + " {extended_start_script, true}," \ + " {sys_config, \"config/sys.config\"}," \ + " {vm_args, \"config/vm.args\"}" \ + "| CONFIG]." \ + > $(APP)/relx.config.script + + $i "Build the release" + $t $(MAKE) -C $(APP) $v + + $i "Check that the release was built" + $t test -d $(APP)/_rel + $t test -d $(APP)/_rel/$(APP)_release + $t test -d $(APP)/_rel/$(APP)_release/bin + $t test -d $(APP)/_rel/$(APP)_release/lib + $t test -d $(APP)/_rel/$(APP)_release/releases + $t test -d $(APP)/_rel/$(APP)_release/releases/ONE + + $i "Clean the application" + $t $(MAKE) -C $(APP) clean $v + + $i "Check that the release still exists" + $t test -d $(APP)/_rel + $t test -d $(APP)/_rel/$(APP)_release + $t test -d $(APP)/_rel/$(APP)_release/bin + $t test -d $(APP)/_rel/$(APP)_release/lib + $t test -d $(APP)/_rel/$(APP)_release/releases + $t test -d $(APP)/_rel/$(APP)_release/releases/ONE + + $i "Distclean the application" + $t $(MAKE) -C $(APP) distclean $v + + $i "Check that the output directory was removed entirely" + $t test ! -d $(APP)/_rel/ + ifneq ($(PLATFORM),msys2) # This test is currently disabled on Windows because we are # running into too many issues preventing the test from @@ -218,11 +319,11 @@ ifeq ($(PLATFORM),msys2) else $i "Start initial release and confirm it runs the old code" endif - $t $(APP)/tmp/bin/$(APP)_release$(RELX_REL_EXT) start + $t $(APP)/tmp/bin/$(APP)_release$(RELX_REL_EXT) daemon $t sleep 1 ifneq ($(PLATFORM),msys2) -# On Windows the script does not have the commands rpcterms and versions. - $t test `$(APP)/tmp/bin/$(APP)_release$(RELX_REL_EXT) rpcterms test test` = old +# On Windows the script does not have the commands rpc and versions. + $t test `$(APP)/tmp/bin/$(APP)_release$(RELX_REL_EXT) rpc test test` = old $i "Check that it's 1 available version" $t test `$(APP)/tmp/bin/$(APP)_release$(RELX_REL_EXT) versions | wc -l` = "2" @@ -246,8 +347,8 @@ else endif $t sleep 1 ifneq ($(PLATFORM),msys2) -# On Windows the script does not have the commands rpcterms and versions. - $t test `$(APP)/tmp/bin/$(APP)_release$(RELX_REL_EXT) rpcterms test test` = new +# On Windows the script does not have the commands rpc and versions. + $t test `$(APP)/tmp/bin/$(APP)_release$(RELX_REL_EXT) rpc test test` = new $i "Check that it's 2 available versions" $t test `$(APP)/tmp/bin/$(APP)_release$(RELX_REL_EXT) versions | wc -l` = "3" @@ -266,8 +367,8 @@ else endif $t sleep 1 ifneq ($(PLATFORM),msys2) -# On Windows the script does not have the commands rpcterms and versions. - $t test `$(APP)/tmp/bin/$(APP)_release$(RELX_REL_EXT) rpcterms test test` = old +# On Windows the script does not have the commands rpc and versions. + $t test `$(APP)/tmp/bin/$(APP)_release$(RELX_REL_EXT) rpc test test` = old endif $i "Stop the release" @@ -300,7 +401,7 @@ endif ifeq ($(PLATFORM),msys2) $t $(APP)/_rel/$(APP)_release/bin/$(APP)_release$(RELX_REL_EXT) install endif - $t $(APP)/_rel/$(APP)_release/bin/$(APP)_release$(RELX_REL_EXT) start + $t $(APP)/_rel/$(APP)_release/bin/$(APP)_release$(RELX_REL_EXT) daemon $i "Ping the release" $t $(call wait_for_success,$(APP)/_rel/$(APP)_release/bin/$(APP)_release$(RELX_REL_EXT) ping) @@ -341,7 +442,7 @@ relx-tar: init $i "Check that tarball exists" $t test -f $(APP)/_rel/$(APP)_release/$(APP)_release-1.tar.gz -relx-vsn: init +relx-vsn-cmd: init $i "Bootstrap a new release named $(APP)" $t mkdir $(APP)/ @@ -357,3 +458,37 @@ relx-vsn: init $i "Check that the correct release exists" $t ! test -d $(APP)/_rel/$(APP)_release/releases/1 $t test -d $(APP)/_rel/$(APP)_release/releases/2 + +relx-vsn-git-long: init + + $i "Bootstrap a new release named $(APP)" + $t mkdir $(APP)/ + $t cp ../erlang.mk $(APP)/ + $t $(MAKE) -C $(APP) -f erlang.mk bootstrap bootstrap-rel $v + + $i "Replace the vsn" + $t sed -i.bak s/"\"1\""/"{git, long}"/ $(APP)/relx.config + + $i "Build the release" + $t $(MAKE) -C $(APP) $v + + $i "Check that the correct release exists" + $t ! test -d $(APP)/_rel/$(APP)_release/releases/1 + $t test -d $(APP)/_rel/$(APP)_release/releases/$(shell git rev-parse HEAD) + +relx-vsn-git-short: init + + $i "Bootstrap a new release named $(APP)" + $t mkdir $(APP)/ + $t cp ../erlang.mk $(APP)/ + $t $(MAKE) -C $(APP) -f erlang.mk bootstrap bootstrap-rel $v + + $i "Replace the vsn" + $t sed -i.bak s/"\"1\""/"{git, short}"/ $(APP)/relx.config + + $i "Build the release" + $t $(MAKE) -C $(APP) $v + + $i "Check that the correct release exists" + $t ! test -d $(APP)/_rel/$(APP)_release/releases/1 + $t test -d $(APP)/_rel/$(APP)_release/releases/$(shell git rev-parse --short HEAD) |