You've already forked linux-packaging-mono
Imported Upstream version 4.3.2.467
Former-commit-id: 9c2cb47f45fa221e661ab616387c9cda183f283d
This commit is contained in:
1
acceptance-tests/Makefile.am.REMOVED.git-id
Normal file
1
acceptance-tests/Makefile.am.REMOVED.git-id
Normal file
@@ -0,0 +1 @@
|
||||
68b9ff90e7dc4c8e38686a067a75eb9365f9504b
|
1
acceptance-tests/Makefile.in.REMOVED.git-id
Normal file
1
acceptance-tests/Makefile.in.REMOVED.git-id
Normal file
@@ -0,0 +1 @@
|
||||
e59629639b73555931e60aa95d850ac5dd3e4a5e
|
14
acceptance-tests/README.md
Normal file
14
acceptance-tests/README.md
Normal file
@@ -0,0 +1,14 @@
|
||||
This directory contains acceptance tests, handled by optional non git submodule based submodules. Run the tests via "make check-full" (there are also targets for individual test suites).
|
||||
|
||||
The SUBMODULES.json file stores information about the submodules, and make targets are used to check out submodules, check their versions, and update the submodule information.
|
||||
|
||||
By convention, submodules repositories are at the same level as the mono repository.
|
||||
|
||||
Make targets available:
|
||||
|
||||
make check-<module> - Checks whenever <module> is checked out and matches the version in the info file.
|
||||
make reset-<module> - Clones <module>if neccesary and checks out the revision specified in the info file.
|
||||
make bump-<module> - Updates the revision stored in the info file for <module>.
|
||||
make bump-current-<module> - Updates the revision stored in the info file for <module> to the current revision.
|
||||
make commit-bump-<module> - Same as make bump-<module>, but commits the change.
|
||||
make commit-bump-current-<module> - Same as make bump-current-<module>, but commits the change.
|
26
acceptance-tests/SUBMODULES.json
Normal file
26
acceptance-tests/SUBMODULES.json
Normal file
@@ -0,0 +1,26 @@
|
||||
[
|
||||
{
|
||||
"name": "roslyn",
|
||||
"url": "git://github.com/dotnet/roslyn.git",
|
||||
"rev": "322bd5b2bbf07df6a67de35cbcb2365484412f70",
|
||||
"remote-branch": "origin/master",
|
||||
"branch": "master",
|
||||
"directory": "roslyn"
|
||||
},
|
||||
{
|
||||
"name": "coreclr",
|
||||
"url": "git://github.com/mono/coreclr.git",
|
||||
"rev": "96cf61f96b42cf9d013e641609cb7787f6e3a71f",
|
||||
"remote-branch": "origin/mono",
|
||||
"branch": "mono",
|
||||
"directory": "coreclr"
|
||||
},
|
||||
{
|
||||
"name": "ms-test-suite",
|
||||
"url": "git@github.com:xamarin/ms-test-suite.git",
|
||||
"rev": "8eb26bd72a38e2c78675db45b13e89237dbdf4f2",
|
||||
"remote-branch": "origin/master",
|
||||
"branch": "master",
|
||||
"directory": "ms-test-suite"
|
||||
}
|
||||
]
|
159
acceptance-tests/versions.mk
Normal file
159
acceptance-tests/versions.mk
Normal file
@@ -0,0 +1,159 @@
|
||||
.PHONY: validate-versions reset-versions
|
||||
|
||||
CONFIG=SUBMODULES.json
|
||||
|
||||
# usage $(call ValidateVersionTemplate (name,MAKEFILE VAR,repo name))
|
||||
# usage $(call ValidateVersionTemplate (mono,MONO,mono))
|
||||
|
||||
define ValidateVersionTemplate
|
||||
#$(eval REPOSITORY_$(2):=$(shell test -z $(3) && echo $(1) || echo "$(3)"))
|
||||
#$(eval DIRECTORY_$(2):=$(shell python versions.py get-dir $(1)))
|
||||
#$(eval DIRECTORY_$(2):=$(shell test -z $(DIRECTORY_$(2)) && echo $(1) || echo $(DIRECTORY_$(2))))
|
||||
#$(eval MODULE_$(2):=$(shell python versions.py get-url $(1)))
|
||||
#$(eval NEEDED_$(2)_VERSION:=$(shell python versions.py get-rev $(1)))
|
||||
#$(eval $(2)_BRANCH_AND_REMOTE:=$(shell python versions.py get-remote-branch $(1)))
|
||||
|
||||
#$(eval $(2)_VERSION:=$$$$(shell cd $($(2)_PATH) 2>/dev/null && git rev-parse HEAD ))
|
||||
|
||||
#$(eval NEEDED_$(2)_BRANCH:=$(word 2, $(subst /, ,$($(2)_BRANCH_AND_REMOTE))))
|
||||
#$(eval NEEDED_$(2)_REMOTE:=$(word 1, $(subst /, ,$($(2)_BRANCH_AND_REMOTE))))
|
||||
#$(eval $(2)_BRANCH:=$$$$(shell cd $($(2)_PATH) 2>/dev/null && git symbolic-ref --short HEAD 2>/dev/null))
|
||||
|
||||
validate-$(1)::
|
||||
@if test x$$(IGNORE_$(2)_VERSION) = "x"; then \
|
||||
if test ! -d $($(2)_PATH); then \
|
||||
if test x$$(RESET_VERSIONS) != "x"; then \
|
||||
$(MAKE) reset-$(1) || exit 1; \
|
||||
else \
|
||||
echo "Your $(1) checkout is missing, please run 'make reset-$(1)'"; \
|
||||
touch .validate-versions-failure; \
|
||||
fi; \
|
||||
else \
|
||||
if test "x$($(2)_VERSION)" != "x$(NEEDED_$(2)_VERSION)" ; then \
|
||||
if test x$$(RESET_VERSIONS) != "x"; then \
|
||||
$(MAKE) reset-$(1) || exit 1; \
|
||||
else \
|
||||
echo "Your $(1) version is out of date, please run 'make reset-$(1)' (found $($(2)_VERSION), expected $(NEEDED_$(2)_VERSION))"; \
|
||||
test -z "$(BUILD_REVISION)" || $(MAKE) test-$(1); \
|
||||
touch .validate-versions-failure; \
|
||||
fi; \
|
||||
elif test "x$($(2)_BRANCH)" != "x$(NEEDED_$(2)_BRANCH)" ; then \
|
||||
if test x$$(RESET_VERSIONS) != "x"; then \
|
||||
test -z "$(BUILD_REVISION)" || $(MAKE) test-$(1); \
|
||||
$(MAKE) reset-$(1) || exit 1; \
|
||||
else \
|
||||
echo "Your $(1) branch is out of date, please run 'make reset-$(1)' (found $($(2)_BRANCH), expected $(NEEDED_$(2)_BRANCH))"; \
|
||||
touch .validate-versions-failure; \
|
||||
fi; \
|
||||
fi; \
|
||||
fi; \
|
||||
fi
|
||||
|
||||
test-$(1)::
|
||||
@echo $(1)
|
||||
@echo " REPOSITORY_$(2)=$(REPOSITORY_$(2))"
|
||||
@echo " DIRECTORY_$(2)=$(DIRECTORY_$(2))"
|
||||
@echo " MODULE_$(2)=$(MODULE_$(2))"
|
||||
@echo " NEEDED_$(2)_VERSION=$(NEEDED_$(2)_VERSION)"
|
||||
@echo " $(2)_VERSION=$($(2)_VERSION)"
|
||||
@echo " $(2)_BRANCH_AND_REMOTE=$($(2)_BRANCH_AND_REMOTE)"
|
||||
@echo " NEEDED_$(2)_BRANCH=$(NEEDED_$(2)_BRANCH)"
|
||||
@echo " NEEDED_$(2)_REMOTE=$(NEEDED_$(2)_REMOTE)"
|
||||
@echo " $(2)_BRANCH=$($(2)_BRANCH)"
|
||||
@echo " $(2)_PATH=$($(2)_PATH) => $(abspath $($(2)_PATH))"
|
||||
|
||||
reset-$(1)::
|
||||
@if test -d $($(2)_PATH); then \
|
||||
if ! (cd $($(2)_PATH) && git show $(NEEDED_$(2)_VERSION) >/dev/null 2>&1 && git log -1 $(NEEDED_$(2)_REMOTE) >/dev/null 2>&1) ; then \
|
||||
echo "*** git fetch `basename $$($(2)_PATH)`" && (cd $($(2)_PATH) && git fetch); \
|
||||
fi; \
|
||||
else \
|
||||
echo "*** git clone $(MODULE_$(2)) --recursive $(DIRECTORY_$(2))" && (cd `dirname $($(2)_PATH)` && git clone $(MODULE_$(2)) --recursive $(DIRECTORY_$(2)) || exit 1 ); \
|
||||
fi
|
||||
@if test x$$(IGNORE_$(2)_VERSION) = "x"; then \
|
||||
echo "*** [$(1)] git checkout -f" $(NEEDED_$(2)_BRANCH) && (cd $($(2)_PATH) ; git checkout -f $(NEEDED_$(2)_BRANCH) || git checkout -f -b $($(2)_BRANCH_AND_REMOTE)); \
|
||||
echo "*** [$(1)] git reset --hard $(NEEDED_$(2)_VERSION)" && (cd $($(2)_PATH) && git reset --hard $(NEEDED_$(2)_VERSION)); \
|
||||
fi
|
||||
@echo "*** [$(1)] git submodule update --init --recursive" && (cd $($(2)_PATH) && git submodule update --init --recursive)
|
||||
|
||||
print-$(1)::
|
||||
@printf "*** %-16s %-45s %s (%s)\n" "$(DIRECTORY_$(2))" "$(MODULE_$(2))" "$(NEEDED_$(2)_VERSION)" "$(NEEDED_$(2)_BRANCH)"
|
||||
|
||||
.PHONY: validate-$(1) reset-$(1) print-$(1)
|
||||
|
||||
reset-versions:: reset-$(1)
|
||||
validate-versions:: Validate-$(1)
|
||||
print-versions:: print-$(1)
|
||||
|
||||
endef
|
||||
|
||||
$(eval $(call ValidateVersionTemplate,roslyn,ROSLYN))
|
||||
$(eval $(call ValidateVersionTemplate,coreclr,CORECLR))
|
||||
$(eval $(call ValidateVersionTemplate,ms-test-suite,MSTESTSUITE))
|
||||
|
||||
reset-versions::
|
||||
|
||||
validate-versions::
|
||||
@if test -e .validate-versions-failure; then \
|
||||
rm .validate-versions-failure; \
|
||||
echo One or more modules needs update; \
|
||||
exit 1; \
|
||||
else \
|
||||
echo All dependent modules up to date; \
|
||||
fi
|
||||
|
||||
reset:
|
||||
@$(MAKE) validate-versions RESET_VERSIONS=1
|
||||
|
||||
__bump-version-%:
|
||||
@if [ "$(REV)" = "" ]; then echo "Usage: make bump-version-$* REV=<ref>"; exit 1; fi
|
||||
python versions.py set-rev $* $(REV)
|
||||
@if [ "$(COMMIT)" = "1" ]; then echo "[acceptance-tests] Bump $* to pick up $(REV)." | git commit -F - $(CONFIG); fi
|
||||
|
||||
__bump-branch-%:
|
||||
@if [ "$(BRANCH)" = "" ]; then echo "Usage: make bump-branch-$* BRANCH=<branch> REMOTE_BRANCH=<remote branch>"; exit 1; fi
|
||||
@if [ "$(REMOTE_BRANCH)" == "" ]; then echo "Usage: make bump-branch-$* BRANCH=<branch> REMOTE_BRANCH=<remote branch>"; exit 1; fi
|
||||
python versions.py set-branch $* $(BRANCH)
|
||||
python versions.py set-remote-branch $* $(REMOTE_BRANCH)
|
||||
@if [ "$(COMMIT)" = "1" ]; then echo "[acceptance-tests] Bump $* to switch to $(BRANCH) $(REMOTE BRANCH)." | git commit -F - $(CONFIG); fi
|
||||
|
||||
__bump-current-version-%:
|
||||
REV=$(shell cd $(TOP)/../$* && git log -1 --pretty=format:%H); \
|
||||
python versions.py set-rev $* $$REV; \
|
||||
if [ "$(COMMIT)" = "1" ]; then echo "[acceptance-tests] Bump $* to pick up $$REV:" | git commit -F - $(CONFIG); fi
|
||||
|
||||
# Bump the given submodule to the revision given by the REV make variable
|
||||
# If COMMIT is 1, commit the change
|
||||
bump-roslyn: __bump-version-roslyn
|
||||
bump-coreclr: __bump-version-coreclr
|
||||
bump-ms-test-suite: __bump-version-ms-test-suite
|
||||
|
||||
# Bump the given submodule to the branch given by the BRANCH/REMOTE_BRANCH make variables
|
||||
# If COMMIT is 1, commit the change
|
||||
bump-branch-roslyn: __bump-branch-roslyn
|
||||
bump-branch-coreclr: __bump-branch-coreclr
|
||||
bump-branch-ms-test-suite: __bump-branch-ms-test-suite
|
||||
|
||||
# Bump the given submodule to its current GIT version
|
||||
# If COMMIT is 1, commit the change
|
||||
bump-current-roslyn: __bump-current-version-roslyn
|
||||
bump-current-coreclr: __bump-current-version-coreclr
|
||||
bump-current-ms-test-suite: __bump-current-version-ms-test-suite
|
||||
|
||||
commit-bump-roslyn:
|
||||
$(MAKE) bump-roslyn COMMIT=1
|
||||
|
||||
commit-bump-coreclr:
|
||||
$(MAKE) bump-coreclr COMMIT=1
|
||||
|
||||
commit-bump-ms-test-suite:
|
||||
$(MAKE) bump-ms-test-suite COMMIT=1
|
||||
|
||||
commit-bump-current-roslyn:
|
||||
$(MAKE) bump-current-roslyn COMMIT=1
|
||||
|
||||
commit-bump-current-coreclr:
|
||||
$(MAKE) bump-current-coreclr COMMIT=1
|
||||
|
||||
commit-bump-current-ms-test-suite:
|
||||
$(MAKE) bump-current-ms-test-suite COMMIT=1
|
52
acceptance-tests/versions.py
Executable file
52
acceptance-tests/versions.py
Executable file
@@ -0,0 +1,52 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import sys
|
||||
import json
|
||||
|
||||
def find_module(submodules, name):
|
||||
for item in submodules:
|
||||
if item["name"] == name:
|
||||
return item
|
||||
|
||||
print "Not found"
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
if len(sys.argv) < 2:
|
||||
print "Usage: versions.py <command>"
|
||||
sys.exit(1)
|
||||
|
||||
CONFIG_FILE = "SUBMODULES.json"
|
||||
command = sys.argv[1]
|
||||
|
||||
submodules = json.load(open(CONFIG_FILE))
|
||||
|
||||
if command == "get-rev":
|
||||
mod = find_module(submodules, sys.argv[2])
|
||||
print mod["rev"]
|
||||
elif command == "get-url":
|
||||
mod = find_module(submodules, sys.argv[2])
|
||||
print mod["url"]
|
||||
elif command == "get-dir":
|
||||
mod = find_module(submodules, sys.argv[2])
|
||||
print mod["directory"]
|
||||
elif command == "get-remote-branch":
|
||||
mod = find_module(submodules, sys.argv[2])
|
||||
print mod["remote-branch"]
|
||||
elif command == "set-rev":
|
||||
mod = find_module(submodules, sys.argv[2])
|
||||
mod["rev"] = sys.argv[3]
|
||||
json.dump(submodules, open(CONFIG_FILE, "w"), indent = 2)
|
||||
elif command == "set-branch":
|
||||
mod = find_module(submodules, sys.argv[2])
|
||||
mod["branch"] = sys.argv[3]
|
||||
json.dump(submodules, open(CONFIG_FILE, "w"), indent = 2)
|
||||
elif command == "set-remote-branch":
|
||||
mod = find_module(submodules, sys.argv[2])
|
||||
mod["remote-branch"] = sys.argv[3]
|
||||
json.dump(submodules, open(CONFIG_FILE, "w"), indent = 2)
|
||||
elif command == "cat":
|
||||
print json.dumps(submodules, indent = 2)
|
||||
else:
|
||||
print "Unknown command "" + command + ""."
|
||||
sys.exit(1)
|
Reference in New Issue
Block a user