aboutsummaryrefslogtreecommitdiffstats
path: root/test/core_upgrade.mk
diff options
context:
space:
mode:
authorJean-Sébastien Pédron <[email protected]>2015-11-17 17:26:47 +0100
committerJean-Sébastien Pédron <[email protected]>2015-11-17 18:32:17 +0100
commitffba4c451fc484cb59e4cfea6d03347895d11ec0 (patch)
tree51965b4ee10f586ee56126eebe3243649d57740f /test/core_upgrade.mk
parentbd6e00675e2b87cf031017b931a02353fc67b250 (diff)
downloaderlang.mk-ffba4c451fc484cb59e4cfea6d03347895d11ec0.tar.gz
erlang.mk-ffba4c451fc484cb59e4cfea6d03347895d11ec0.tar.bz2
erlang.mk-ffba4c451fc484cb59e4cfea6d03347895d11ec0.zip
make erlang-mk: Copy build.config after switching to $(ERLANG_MK_COMMIT)
If the local build.config has changes compared to upstream's master branch, and $(ERLANG_MK_COMMIT) also brings changes to this file, copying the local file to the checkout before switching to $(ERLANG_MK_COMMIT) caused git-checkout(1) to abort with: error: Your local changes to the following files would be overwritten by checkout: build.config Please, commit your changes or stash them before you can switch branches. Aborting While here, fix `core-upgrade-custom-repo` test case: without switching back the alternate erlang.mk repository to its master branch, the clone always got the test-copyright branch by default, making the ERLANG_MK_COMMIT check ineffective.
Diffstat (limited to 'test/core_upgrade.mk')
-rw-r--r--test/core_upgrade.mk34
1 files changed, 32 insertions, 2 deletions
diff --git a/test/core_upgrade.mk b/test/core_upgrade.mk
index c4a8725..60adaab 100644
--- a/test/core_upgrade.mk
+++ b/test/core_upgrade.mk
@@ -1,6 +1,6 @@
# Core: Erlang.mk upgrade.
-CORE_UPGRADE_CASES = custom-build-dir custom-config custom-repo no-config renamed-config
+CORE_UPGRADE_CASES = conflicting-configs custom-build-dir custom-config custom-repo no-config renamed-config
CORE_UPGRADE_TARGETS = $(addprefix core-upgrade-,$(CORE_UPGRADE_CASES))
CORE_UPGRADE_CLEAN_TARGETS = $(addprefix clean-,$(CORE_UPGRADE_TARGETS))
@@ -13,6 +13,35 @@ $(CORE_UPGRADE_CLEAN_TARGETS):
core-upgrade: $(CORE_UPGRADE_TARGETS)
+core-upgrade-conflicting-configs: build clean-core-upgrade-conflicting-configs
+
+ $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 "Fork erlang.mk locally and modify it"
+ $t git clone -q https://github.com/ninenines/erlang.mk $(APP)/alt-erlangmk-repo
+ $t echo core/core > $(APP)/alt-erlangmk-repo/build.config
+ $t (cd $(APP)/alt-erlangmk-repo && \
+ git checkout -q -b test-modified-build.config && \
+ git config user.email "[email protected]" && \
+ git config user.name "test suite" && \
+ git commit -q -a -m 'Modify build.config' && \
+ git checkout master)
+
+ $i "Point application to an alternate erlang.mk repository"
+ $t perl -ni.bak -e 'print;if ($$.==1) {print "ERLANG_MK_REPO = file://$(abspath $(APP)/alt-erlangmk-repo)\nERLANG_MK_COMMIT = test-modified-build.config\n"}' $(APP)/Makefile
+
+ $i "Create a custom build.config file without plugins"
+ $t echo "core/*" > $(APP)/build.config
+
+ $i "Upgrade Erlang.mk"
+ $t $(MAKE) -C $(APP) erlang-mk $v
+
+ $i "Check that the bootstrap plugin is gone"
+ $t ! $(MAKE) -C $(APP) list-templates $v
+
core-upgrade-custom-build-dir: build clean-core-upgrade-custom-build-dir
$i "Bootstrap a new OTP library named $(APP)"
@@ -69,7 +98,8 @@ core-upgrade-custom-repo: build clean-core-upgrade-custom-repo
git checkout -q -b test-copyright && \
git config user.email "[email protected]" && \
git config user.name "test suite" && \
- git commit -q -a -m 'Add Testsuite copyright')
+ git commit -q -a -m 'Add Testsuite copyright' && \
+ git checkout master)
$i "Point application to an alternate erlang.mk repository"
$t perl -ni.bak -e 'print;if ($$.==1) {print "ERLANG_MK_REPO = file://$(abspath $(APP)/alt-erlangmk-repo)\nERLANG_MK_COMMIT = test-copyright\n"}' $(APP)/Makefile